您可能还记得,Windows记事本在“另存为...”功能中具有编码功能:ASCII(默认),UTF-8,Unicode和Big Endian。 我需要创建一个程序,该程序使用ASCII .txt文件的文本进行扫描,并将结果保存为Unicode .txt文件。
我尝试从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符号。
答案 0 :(得分:3)
如果您的源是ASCII并且wchar_t
的大小为2个字节,并且您处于小端系统(我认为这是一个安全的猜测),那么除了隐式转换之外什么都没有。
wchar_t output_char = input_char;
然后你可以把wchar_t
s炸成你想写的地方。