gpt4 book ai didi

c++ - 如何在 C/C++ (cpp) 中将 ASCII 保存为 Unicode (UTF-16LE)?

转载 作者:行者123 更新时间:2023-11-30 02:55:45 25 4
gpt4 key购买 nike

您可能还记得,Windows 记事本在“另存为..”功能中具有编码功能:ASCII(默认)、UTF-8、Unicode 和Big Endian。我需要编写一个程序,它对 ASCII .txt 文件的文本进行 smth,并将结果保存为 Unicode .txt 文件。

  • 根据我的搜索,此处的 Unicode 表示 UTF-16LE(无 BOM)。如果我错了 - 请纠正我。
  • 我尝试从 ASCII 读取 char 并将其一一转换为 wchar_t - 成功了,但我使用的是 UTF-8 而不是 UTF-16LE。我就是这样做的:

    int result = (int)input_char; //input_chat is char from ASCII 
    while(result<0) result+=256;
    wchar_t output_wchar = wchar_t(result);

此代码适用于文件并且不会丢失任何 ASCII 符号。

  • 我还知道 UTF-16LE 编码为 U+hhhh 代码。所以,如果前面的步骤是正确的,我的问题是:如何在 C++ 中将 U+hhhh 代码放入 wchar_t?

最佳答案

如果您的源是 ASCII 并且 wchar_t 的大小为 2 个字节,并且您在一个小端系统中(我认为这是一个安全的猜测),那么除了隐式转换之外什么都没有.

wchar_t output_char = input_char;

然后你可以将 wchar_t 位爆炸到你想写的任何地方。

关于c++ - 如何在 C/C++ (cpp) 中将 ASCII 保存为 Unicode (UTF-16LE)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com