在终端输入上强制使用字符编码

Force a character encoding on terminal input

提问人:elmor6942 提问时间:11/2/2023 更新时间:11/2/2023 访问量:32

问:

我正在学习各种字符编码,在存储仅包含 ascii 字符的字符串时使用 UTF-32 会浪费空间,C 中的 strlen() 返回非 ascii 编码中的字节数。我想看到它的实际效果,我如何实现以下目标

  • 从终端获取的字符串输入应以 UTF-32 编码存储,即使字符串包含 ASCII 字符也是如此

  • 例如:strlen(“abc”) = 12;

我正在将 ubuntu 与 bash 一起使用

C Linux 字符串 终端 字符编码

评论

0赞 tripleee 11/2/2023
你的问题是什么?如果你只读 s,则需要使用编码函数转换字符串;或切换到读取宽字符并将其存储为 UTF-32 的输入函数。char
0赞 tripleee 11/2/2023
不过,您不需要 C 语言;echo abc | iconv -t utf-32 | od -ctx1
0赞 Giacomo Catenazzi 11/2/2023
或者使用任何好的文本编辑器。您应该能够更改编码,并以您选择的编码查看文件(文件大小将告诉您生成的文件的大小)。

答: 暂无答案