Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1474477
  • 博文数量: 823
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5002
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-28 17:39
文章分类

全部博文(823)

文章存档

2011年(1)

2008年(822)

我的朋友

分类: LINUX

2008-08-28 17:46:35

 
使用localedef命令

linux下在使用wcstombs()或者mbstowcs()进行字符集编码转换时,需要先调用setlocale()来定义当前的locale,而setlocale()是否会成功,取决于系统当前是否存在相应的localdefine文件,这些文件以目录形式存在/usr/lib/locale中,或者以二进制形式存在于/usr/lib/locale/locale-archive中.

localedefine文件其实是两种相互转换的字符集信息定义,用来辅助完成wcstombs()转换工作.

使用locale-a来查看所有的locale定义.

我在装了ubuntu后,需要写程序将ascii码转换为unicode,发现setlocale(LC_CTYPE,"en_US.ISO-8859-1")失败,原因是与"en_US.IS-8859-1"相关的locale并不存在,因而转换不能进行.奇怪啊,ASCII转UNICODE居然不是默认支持的.

没有关系,使用localedef命令生成与en_US.ISO-8859-1相关的locale文件即可,使用命令如下:

locale-fISO-8859-1-ien_USen_US.ISO-8859-1

这个命令的意思是生成en_US.ISO-8859-1相关的locale信息,至/usr/lib/locale-archive文件中.

也可以将locale信息生成到目录里,类似/usr/lib/locale/zh_CN.utf8/这样的形式,参考manlocaledef命令.

Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决Ubuntu 下wcstombs失败的问题原因及解决
阅读(905) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~