请教:Linux和Windows跨平台C++编程中多国语言的问题?及跨平台交换数据文件等问题?

roger_77 2007-01-17 10:19:00
请教各位:
C++在Linux和Windows跨平台编程中,多国语言版本应该怎样实现,尤其是UTF-8如何影响编程和项目设置的?
还有就是C++的字符串数据中,如果是Linux和Windows跨平台需要支持多国语言,应该什么样的编码方式?ANSI,Unicode(如wstring, UTF-8等)?

请有这方面开始经验的兄弟不要吝惜,多多指点!
(分不够可再加)
...全文
993 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
roger_77 2007-03-14
  • 打赏
  • 举报
回复
看不到分数,请点击"管理"
roger_77 2007-03-14
  • 打赏
  • 举报
回复
想说一句,此问题还没最终找到合适的解决方案
最近在忙其它的事,这事就先放在一边了,以后再好好研究

要强行结贴了,
没办法啦……

redleaves 2007-03-01
  • 打赏
  • 举报
回复
楼主应该好好看一下这些个编码的关系.

楼上的有些地方也不对.

ISO10646就是UCS,是32位的
Unicode是16位的,相当于ISO10646的BMP部分.
UTF-16是针对Unicode产生的折中方案,为的是用Unicode的兼容形式来表达更多的UCS编码.形式和UTF-8是相似的.
UTF-8则是针对ASCII产生的折中方案,用ASCII兼容的形式来表式UNICODE/UCS编码.

用UTF-8,最大的好处是几乎完全不要修改字符串处理的代码,只要让显示字符的代码支持UTF-8就可以了,它可以兼容ASCII.
roger_77 2007-03-01
  • 打赏
  • 举报
回复
用UTF-8,最大的好处是几乎完全不要修改字符串处理的代码,只要让显示字符的代码支持UTF-8就可以了,它可以兼容ASCII.

----------------
真是如此吗?
具体应该在程序中操作?
redleaves 2007-03-01
  • 打赏
  • 举报
回复
对,当然.唯一和ASCII不同的是,有时UTF-8是多个字节表示一个字符,如果你有计算字符个数之类的代码,需要做些改动.
roger_77 2007-02-13
  • 打赏
  • 举报
回复
..........

uft-8不是很好的编码方案.
对中文来说, 2个字符变成3个,中国人没理由支持这个东东.

统一采用2字节编码...........

------------------------------

对于"htqx(航天奇侠)"这位兄弟的看法,偶持保留意见.

个人感觉UTF-8的编码方式更好,更易于兼容世界上各种语言,并且节省资源.
而采用uft-16的双字节编码,目前已经不够用来表示世界上所有的语言文字啦.
htqx 2007-01-29
  • 打赏
  • 举报
回复
uft-8不是很好的编码方案.
对中文来说, 2个字符变成3个,中国人没理由支持这个东东.

对程序来说,他和内码的编码方式实际一样,都是多字节编码,1个和2个,到现在1个和3个的结合,完全是没有进步. 而unicode编码,统一采用2字节编码,这样对程序开发来说可以轻松简易一点.

unicode编码有两个都是强制性的标准,一个用于程序设计内部表达数据的utf-16,一个是用于保存大量英文字母的utf-8标准, 中国人保存自己的文字,适合采用uft-16,因为这个标准可以减少每个字符一字节的需求量.

当然,代码如果同时支持这两种编码接口最好不过了.


muymuy 2007-01-29
  • 打赏
  • 举报
回复
补充一句:
大名顶顶的xerces-c(一个处理xml的开发包),为了支持多国语言就是采用wchar_t,wstring,并采用utf-16编码。
muymuy 2007-01-29
  • 打赏
  • 举报
回复
1、所有字符和字符串都采用wchar_t或wstring;
2、所有字符和字符串采用utf-16编码;
roger_77 2007-01-17
  • 打赏
  • 举报
回复
文章偶看了不少,感觉很难下手:
比如:一个字符串数据(它可能是中文或英文或中英文混合等等),字符串在某个平台(语言不定)下被程序写入文件中,而这个文件可能会被传输到不同的平台(语言不定)中,再由程序从文件中读取出来。

在不同的平台和不同的语言环境中,怎么才能保证正确传输及解析原来的C++字符串数据?

有这方面开发经验的兄弟,都来指点一下嘛!
分数好说
caocheng8230 2007-01-17
  • 打赏
  • 举报
回复
开源社区有code.google.com
sorceforge.net
jixingzhong 2007-01-17
  • 打赏
  • 举报
回复
Linux 国际化本地化和中文化:

http://www.lslnet.com/linux/docs/linux-2661.htm

看看这个系列文章 ~
caocheng8230 2007-01-17
  • 打赏
  • 举报
回复
还可以去去开源社区,可以搜索搜索locale的相关实现的库,会有不同本地化实现的locale库打包下载.
caocheng8230 2007-01-17
  • 打赏
  • 举报
回复
#include<locale.h>
#include<locale>
上面有关于本地化的相关的库函数
jixingzhong 2007-01-17
  • 打赏
  • 举报
回复
楼主先 看看关于 locale和国际化 的资料~
  • 打赏
  • 举报
回复
在内部使用ascii或者unicode
但所有模块之间的接口使用utf-8
对外接口也使用utf-8

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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