社区
C++ 语言
帖子详情
项目中,我需不需要预先考虑对Unicode的支持?
code-artist
2008-02-21 05:29:45
在windows C/C++ 编程中,提倡用头文件<tchar.h>,_T(),_t等等为以后支持Unicode。
可是C++标准中,一般都用char,std::string等等,而wchar_t,std::wstring很少提及,
也没有像tchar.h的这样的头文件提供转换。很多的第三方库都直接用ansi char.
STD C++ 为什么不像windows api那样做?
我在实际项目中该怎么做?
...全文
168
17
打赏
收藏
项目中,我需不需要预先考虑对Unicode的支持?
在windows C/C++ 编程中,提倡用头文件,_T(),_t等等为以后支持Unicode。 可是C++标准中,一般都用char,std::string等等,而wchar_t,std::wstring很少提及, 也没有像tchar.h的这样的头文件提供转换。很多的第三方库都直接用ansi char. STD C++ 为什么不像windows api那样做? 我在实际项目中该怎么做?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sheenl
2008-02-25
打赏
举报
回复
最好是自己define一个变量 CHAR_T, 移植的时候改个define就好了。
mLee79
2008-02-25
打赏
举报
回复
还是用 UTF-8 比较舒服 ...
mathe
2008-02-25
打赏
举报
回复
用wchar_t有利也有弊,比如以后你想要将代码移植到Linux上面,就麻烦了
sheenl
2008-02-25
打赏
举报
回复
还有随便请教一下,一般用wchar_t和wstring哪个好?
==================================================
wstring 就是basic_string<wchar_t>
晨星
2008-02-25
打赏
举报
回复
嗯,遗留代码确实是个问题。
所以,偶现在是在身体力行,至少不让偶身后的程序员郁闷,嘿嘿。
Oversense
2008-02-22
打赏
举报
回复
linux 下一般用utf-8 所以也可以用 std::string
win32下一般用 wchar_t, 所以啊,做个多语言,容易不?不容易哈
code-artist
2008-02-22
打赏
举报
回复
steedhorse 晨星 高见。
但是有一个问题:就是以前的程序库一般都是char,string,和C++书籍对stl库介绍一般只提到char,string.如果调用人家的库必须都得先wchar_t to char转换.唉,只有希望大家以后都用Unicode编程了(这似乎很难改变)。
还有随便请教一下,一般用wchar_t和wstring哪个好?
晨星
2008-02-22
打赏
举报
回复
微软在VC2003之前,新建工程默认都使用多字节字符,但从VC2005之后。默认就给置成使用Unicode字符集了。
可见微软的态度也发生了变化,个人觉得大多数情况下,确实没必要考虑非Unicode应用了。
人家Java程序员更爽,没的选择,Java里的char和java.lang.String从一开始就是在编译器和规范中都写死了的,只支持Unicode。
晨星
2008-02-22
打赏
举报
回复
偶个人通常不用Windows的_t系列。相反,偶觉得新项目基本上已经没有必要再同时支持Unicode和非Unicode,只支持Unicode就OK了,所以偶基本不用char和标准库的string,而是一律使用wchar_t和wstring。
另外,自己也写了两个函数,在万不得已的时候进行转换。
icosagon
2008-02-22
打赏
举报
回复
windows下标准c才有两套吧
icosagon
2008-02-22
打赏
举报
回复
支持多个语言容易,但又要多个语言又要跨平台就不容易了,光是Linux就烦,它的默认locale可以被任意修改
code-artist
2008-02-22
打赏
举报
回复
可是如果用STL,没有中间形式,我们一般都用std::string,char,而不是用st::wstring,wchar_t.
面对STL,该如何使用Unicode呢??
Chappell
2008-02-22
打赏
举报
回复
#ifdef UNICODE
typedef WCHAR TCHAR
#else
typedef char TCHAR
#endif
觉得应该用如TCHAR类型的写法,设置开关比较简单。
珍惜生命远离CPP
2008-02-21
打赏
举报
回复
标准C有两套 一种是针对unicode
所以使用中间形式进行编码是 最好.
hong8292
2008-02-21
打赏
举报
回复
一定要,虽然麻烦了点,你可以稍微做点工作,包装一层,或许其它的方法。
linux_328
2008-02-21
打赏
举报
回复
要,现在的Widnows都采用Unicode了,即使提供了ANSI版本的API,但在内部,还是转换为Unicode处理的,除非你的操作系统是98,95的。
而且Unicode对你将来支持国际化也很有用。
healer_kx
2008-02-21
打赏
举报
回复
要,一定要,理论上,这是需求的一部分。
相关推荐
Java系列技术之Mybatis3
Mybatis3.4.6里的基础核心用法以及涉及到的ssm初步整合,mbg代码生成工具使用,分页插件的使用,学完这门课程Mybatis在
项目
中
需要的知识点就基本齐全了!
mkdir ..\..\..\运行\Debug\
Unicode
\ copy /y ..\..\public\lib\log4cpp\log4cpp.dll ..\
VS
项目
中
引入log4cpp.dll,缺失log4cpp.dll。 引入方法忘了。直接在 对应模块——>右键属性——>配置属性——>生成事件——>
预先
生成事件——>命令行 编写命令
预先
拷贝dll到运行目录下 “配置里面的活动项”选择的是"Debug
Unicode
"那么就拷贝到
unicode
目录 mkdir ..\..\..\运行\Debug\
Unicode
\ copy
在分布式集群
项目
中
解决session共享实现单点登录SSO
先说下为什么要实现session共享,因为在普通的web
项目
中
是不需要
考虑
这点的,因为都在一个
项目
当
中
,但是当分布式或者集群的时候,相同的
项目
部署在不同的服务器上,这时候就需要
考虑
这个问题,因为假如一个用户,在tomcat1登录成功,这时候他刷新了一个页面,然后负载均衡服务器nginx把他分配到了tomcat2上的
项目
中
,这个
项目
中
是没有刚才登录成功的session的,但是人家明明登录成功了,这给...
Android Studio
中
引入Kotlin
安装Kotlin插件 从Android studio3.0开始我们已经全面
支持
Kotlin。我们不需要添加Kotlin插件。而在Android2.X,我们还是需要添加Kotlin插件。Setting -> Plugins
中
下载kotlin插件。
项目
中
配置Kotlin 为了能够使用Kotlin,我们需要在
项目
中
配置Kotlin。在Tools -> Kotlin -> Config...
在敏捷
项目
中
推动与拉动工作
如果您正在
考虑
敏捷或尝试使用它,则可能以某种形式的迭代开始。 您尝试了(可能仍在尝试)估计可以适合迭代的内容。 这就是所谓的“推送”工作,您需要在其
中
预先
进行一些工作。 而且,如果您需要服务
中
断,例如对先前
项目
的
支持
,对生产服务器的
支持
或对另一个
项目
的帮助,您可能会发现您不能很好地“推动”。 您很难预测每两周可以做什么。 尽管迭代持续时间是可预测的,但是您对迭代内容所做的预测却不可预测。...
发帖
C++ 语言
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
6.3w+
社区成员
25.0w+
社区内容
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-02-21 05:29
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下