用string和用wstring存储中文,效果似乎一样啊

zuiweiii 2012-03-29 11:52:46
使用的存储量一样。
比较函数的输出也都一样。

单字符的string和宽字符的wstring,在处理国际化语言的时候,到底有什么效果上的不同么?
...全文
958 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Liwen_Boy 2014-01-21
  • 打赏
  • 举报
回复
[size=24px]我认为要用到 wstring 是在遍历中文或中英文字串的时候。 如果直接用 string 声明字串,便利的时候会拆成乱码。 如: wstring str = L”你好!”; for (string::size_type sz = str.cbegin; sz < str.cend; ++sz) { wcout.imbue(locale("chs")); wcout << str[sz] << “ “; //这里 str 如果是 string 就会有问题! //有许多情况得把中英文拆开处理就得遍历字串中的单个字符 //虽用正则可办到,自己掌控过程更灵活! }[/size]
Elinx 2013-12-09
  • 打赏
  • 举报
回复
等于没说、、、、、、
Kaile 2012-03-29
  • 打赏
  • 举报
回复
string ansi编码
wstring unicode编码

hotpos 2012-03-29
  • 打赏
  • 举报
回复
string里面一个英文字符 1个字节
wstring里面一个英文字符 1个字节

string 里面中文在外语操作系统上容易变乱码
wstring不会
draracle 2012-03-29
  • 打赏
  • 举报
回复
编码方式不同。

string存放multi byte characters
wstring存放unicode characters

或者说,string内以char为单位,wstring以wchar_t为单位。

windows和linux下 wchar_t不同,windows 2个字节,linux 4个字节。
yhp1888 2012-03-29
  • 打赏
  • 举报
回复
如果LZ还要问细节的话,那就是,在windows98以后,尽管你用的是ansi,但系统自动存为unicode,所以你所看到的是一样的结果。

如果LZ要看不同的结果,如下操作:
用记事本输入“中”,存为123.txt,在另存为对话框中,编码选“ANSI”;
再用记事本输入“中”,存为456.txt,在另存为对话框中,编码选“Unicode”;
然后用十六进制编辑软件(如UltraEdit)分别打开这两个文件,你会发现,它的内部不一样!

yhp1888 2012-03-29
  • 打赏
  • 举报
回复
这相当这个问题:干嘛还要用十进制和十六进制呢!
是这方便字符的表述。
ansi编码表现字符的数量有限,也不方便。英文、数字和一些常用符号用一个字节表示,汉字用2个字节表示……;
unicode编码所有的字符都用2个字节表示,表示的字符更多……。
zuiweiii 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

效果当然是一样的,否则汉字就变了。只是存储的形式不同。
相当于123这个数值,用十进制是123,十六进制是0x7B。当然,这个比喻不是很恰当,只是打个比方。
[/Quote]

如果是这样的话,干嘛还要弄一个string和一个wstring呢? 存储宽字节字符效果是一样的啊。
yhp1888 2012-03-29
  • 打赏
  • 举报
回复
效果当然是一样的,否则汉字就变了。只是存储的形式不同。
相当于123这个数值,用十进制是123,十六进制是0x7B。当然,这个比喻不是很恰当,只是打个比方。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧