Windows下的UNICODE、非UNICODE程序
来源:互联网 发布:中国网络监控 编辑:程序博客网 时间:2024/04/29 00:53
UNICODE、非UNICODE程序使用的字符编码
UNICODE程序使用的字符编码很直观,就是UNICODE码。那么非UNICODE程序使用何样编码?
非UNICODE程序使用字符编码
- ASCII字符:ASCII码。
- 非ASCII字符:正使用地区码。像中文(简体,中国)就是GB2312;中文(繁体,台湾)是BIG5。
地区码:这个概念是我为叙述方便而使用的,用它来区别像UNICODE、UTF-8这类统一码。GB2312,它的码表中字符绝大多数是简体中文,对其它文字,像阿拉伯文就无能为力了。但UNICODE、UTF-8,既包含简体中文也包含阿拉伯文,它们的码表包括了世界在用的所有字符。
哪里设置地区码
在任一时刻,操作系统只允许存在一种地区码。要察看、更改地区码,Win7下是“控制面版”——“区域和语言”——“管理”
上图表示地区码是GB2312(中文(简体,中国),“更改系统区域设置”可以更改地区码。
地区码如何影响非UNICODE程序
让来看一个调用SHGetFolderPath例子。my_documents_path变量存储了返回的目录,目录名是D:\用户目录\Documents
地区码是GB2312时
地区码是BIG5时
注意当中“户”、“录”被置了“?”字符。这是由于BIG5中没有收录“户”、“录”字符,于是就被用一个“?”进行替代。
为说明更完全,让看UNICODE程序中SHGetFolderPath的返回值。会发现当中全被用了UNICODE码。
非UNICODE程序的死结
Microsoft宣传Windows XP/7时使用“完全”支持UNICODE,指的就是操作系统内部“完美”地用UNICODE码表示了“所有”字符串。所以虽然BIG5没有收录“户”、“录”字符,即使你还是硬把地区码设为BIG5,操作系统自带的资源管理器却仍旧能很好地显示“D:\用户目录\Documents”这串字符,因为资源管理器是UNICODE程序,UNICODE码表中是收录了“户”和“录”。
再来看非UNICODE程序,由于地区码少收录字符,操作系统叫它转换(从UNICODE到地区码)一些字符时它没有,那些没有的就被替换为“?”。很明显,接下程序如果继续用my_documents_path这个已是错了字符串时,那些访问都将出错。
非UNICODE程序的死结就是PC中存在地区码未收录字符。但一台PC怎么可能尽是“你”收录的字符呢。
要解决死结,UNICODE程序是趋势。但很可惜,基于各式各样原因,像程序要跨平台,在条件不具备情况下又只能是非UNIOCDE程序。
Ps:非unicode的优点:
占用存储空间较小,Unicode系统需要的存储空间比Non-Unicode要多70%。
从数据库中传输数据很快。
备份和还原数据需要的时间很短
转载自:http://blog.csdn.net/iluzhiyong/article/details/8574891
- Windows下的UNICODE、非UNICODE程序
- Windows下的UNICODE、非UNICODE程序
- windows下unicode编码
- UniCode与非UniCode的区别
- UniCode与非UniCode的区别
- Windows下的getopt(支持Unicode)
- 巧用GetShortPathName解决带Unicode字符路径在非Unicode程序里的无法访问的问题
- 语言本地化的救急解决方案 (非Unicode编码的程序)
- 英文操作系统中使用非Unicode版本的中文程序
- UNICODE程序的好处
- MFC 在非unicode的工程下,读取unicode编码的txt
- CString和string在unicode与非unicode下的相互转换
- windows下unicode编程总结
- 程序乱码 服务器非Unicode编码设置
- Cstring Unicode转非Unicode
- windows控制台程序——关于UNICODE字符的总结
- 嵌入开发的一些经验(Windows下Unicode的注意事项)
- char、nchar、varchar、nvarchar、unicode,非unicode的区别
- 使用线程池(1)
- (转)linux常用命令与xsell本地指令
- iOS知识点一
- 使用Mybatis-Generator逆向生成po,映射文件和mapper接口
- 开发微信发红包时,本地测试没有问题发布IIS上提示 System.Security.Cryptography.CryptographicException: 系统找不到指定的文件。
- Windows下的UNICODE、非UNICODE程序
- django + uwsgi + supervisord + nginx = 前端运行django
- .9png图片的制作
- Js 冒泡事件阻止
- java面试总结1
- 新加坡机构预测:2019年将迎机器人自动化时代
- 欢迎使用Markdown编辑器写博客
- AndroidStudio-快捷键-格式化代码
- Linux安装Nodejs