首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

带签名的utf8和不带签名的utf8为什么内码不同,该怎么处理

2012-05-20 
带签名的utf8和不带签名的utf8为什么内码不同语句:string str进度当文件用不带签名的utf8保存时str的

带签名的utf8和不带签名的utf8为什么内码不同
语句:string str="进度";
当文件用不带签名的utf8保存时str的内存字节长度是6字节,也就是一个中文三字节。
当我用vs2008的保存选项保存为带签名的utf8时,str的内存字节长度是4字节,也就是一个中文两字节。


如果文件用不带签名的utf8时,界面上可以正常显示str的值,但编译时经常会出错,才想把文件都转成带签名的,但如果像这样连长度都不同,出来的结果完全是错的。

带不带签名不就是文件开始的地方多个标记吗?怎么连内码长度也不同。
这问题是出在哪了?

[解决办法]
不带签名,很多软件不认识。。。给你保存或读取的时候,说不定就改了
[解决办法]
我试了有bom的,两个中文,文件9字节,没错啊
[解决办法]
lz, 2字节中文通常不是gbk就是utf16.

热点排行