您可能还记得,Windows 记事本在“另存为..”功能中具有编码能力:ASCII(默认)、UTF-8、Unicode 和 Big Endian。 我需要制作一个程序,它对 ASCII .txt 文件的文本进行处理并将结果保存为 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 代码。所以,如果前面的步骤是正确的,我的问题是:如何将 U+hhhh 代码放入 c++ 中的 wchar_t?