用string和用wstring存储中文,效果似乎一样啊该如何处理
用string和用wstring存储中文,效果似乎一样啊
使用的存储量一样。
比较函数的输出也都一样。
单字符的string和宽字符的wstring,在处理国际化语言的时候,到底有什么效果上的不同么?
------解决方案--------------------
如果LZ还要问细节的话,那就是,在windows98以后,尽管你用的是ansi,但系统自动存为unicode,所以你所看到的是一样的结果。
如果LZ要看不同的结果,如下操作:
用记事本输入“中”,存为123.txt,在另存为对话框中,编码选“ANSI”;
再用记事本输入“中”,存为456.txt,在另存为对话框中,编码选“Unicode”;
然后用十六进制编辑软件(如UltraEdit)分别打开这两个文件,你会发现,它的内部不一样!
------解决方案--------------------
编码方式不同。
string存放multi byte characters
wstring存放unicode characters
或者说,string内以char为单位,wstring以wchar_t为单位。
windows和linux下 wchar_t不同,windows 2个字节,linux 4个字节。
使用的存储量一样。
比较函数的输出也都一样。
单字符的string和宽字符的wstring,在处理国际化语言的时候,到底有什么效果上的不同么?
------解决方案--------------------
如果LZ还要问细节的话,那就是,在windows98以后,尽管你用的是ansi,但系统自动存为unicode,所以你所看到的是一样的结果。
如果LZ要看不同的结果,如下操作:
用记事本输入“中”,存为123.txt,在另存为对话框中,编码选“ANSI”;
再用记事本输入“中”,存为456.txt,在另存为对话框中,编码选“Unicode”;
然后用十六进制编辑软件(如UltraEdit)分别打开这两个文件,你会发现,它的内部不一样!
------解决方案--------------------
编码方式不同。
string存放multi byte characters
wstring存放unicode characters
或者说,string内以char为单位,wstring以wchar_t为单位。
windows和linux下 wchar_t不同,windows 2个字节,linux 4个字节。