追加一点:现在是碰到客户用希伯来文,导致乱码了。我查了一下,如果MultiByteToWideChar(1255,...)这样转换就不会有问题。但是客户使用的语言可能有很多种,无法提前预知
解决方案 »
- truetype字体如何获取当前字符串总长度
- 有关MFC中很基础的问题
- CTreeCtrl控件如何调用其他程序
- VS 2008 C++ CLR 按钮事件使用问题
- 如何将left join后的结果显示在listcontrol控件中
- 像CRect和CBrush这种对象有没有这种方法?
- [大家注意]寻求普通文本转成UTF-8的真解!100分相送!
- 剪切板中的换行怎么表示
- 无窗口的ActiveX在IE里面调用的时候,如何得到IE的窗口句柄?
- 100分求解!怎样用VC6.0访问ACCESS数据库!由于问题简单,分全给第一个解决问题的高手
- 写出最好的IOCP服务器,关键的几个问题。
- 我想做一个和qq的视频聊天相似的界面,求帮忙
我觉得改成这样就可以了
英文系统中调用MultiByteToWideChar把其他code page转为wide char只有硬性指定,如1255希伯来文。没其他办法。
自己做个表映射,检测需要什么语言转为widechar,就有该语言的code page
英文系统中调用MultiByteToWideChar把其他code page转为wide char只有硬性指定,如1255希伯来文。没其他办法。
自己做个表映射,检测需要什么语言转为widechar,就有该语言的code page
怎么检测?让用户自己设置,还是程序里有办法检测?
英文系统中调用MultiByteToWideChar把其他code page转为wide char只有硬性指定,如1255希伯来文。没其他办法。
自己做个表映射,检测需要什么语言转为widechar,就有该语言的code page
并且这种方法有个最大的问题,如果多种语言混用怎么办?
936 —简体中文(GBK)
950 —繁体中文
932 —日文
437 —纯英文
比如你是简体中文的操作系统,那本地编码是GBK,如果待转换的字符串是GBK,或者英文或数字,则转换没问题的;如果待转换的字符串是非GBK编码的,用GBK编码去转,肯定是乱码的主要原因是,CP_ACP是本地编码,其编码值不是全球统一的。Unicode和Utf8才是全球统一编码,如果要解决多语言的乱码问题,考虑客户端和服务器都支持,那服务器侧及与客户端交互的数据应该使用Utf8编码,客户端显示的时候统一将utf8转成Unicode后显示。因为Utf8是全球统一编码,转换成Unicode肯定没有乱码问题。