当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 宽字符(串)和多字节编码的UTF-8字符(串)如何转换?
帖子发表于 : 2010-03-17 18:29 
头像

注册: 2009-05-20 21:43
帖子: 735
送出感谢: 2
接收感谢: 2
如果在C 源文件中写 : L"你好世界\n" ,gcc在编译时会自动将其保存为 unicode 编码, 这样实现了将程序中明文形式的
UTF-8多字节编码转换为宽字符串...
但是如何把一个保存在char*(或char数组)里面的多字节utf8编码转换成宽字符串形式并并保存到一个wchar*变量里呢?
或是如何直接从文件和终端中接收输入并将内容保存的wchar数组里面呢? 我发现有 wprintf, wfprintf之类的函数, 但没有
wscanf, wfgets, wfread, 之类的函数, 要是有这些函数就好了...
谢谢!!!


_________________
http://wonc.me/


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 宽字符(串)和多字节编码的UTF-8字符(串)如何转换?
帖子发表于 : 2010-03-17 18:32 
头像

注册: 2009-05-20 21:43
帖子: 735
送出感谢: 2
接收感谢: 2
我现在亟需具有类似一下接口的函数:
wchar_t* cs2wcs(wchar_t* wcs, char* cs);
其中wcs以为wchar_t字符串, cs代表char字符串...


_________________
http://wonc.me/


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 宽字符(串)和多字节编码的UTF-8字符(串)如何转换?
帖子发表于 : 2010-03-17 18:34 
头像

注册: 2007-08-05 17:40
帖子: 4979
送出感谢: 0 次
接收感谢: 6
查找libglib的文档,估计里面有的。


_________________
free VPN
YouKuDownLoader
代码:
pip3 install ykdl

install YouKuDownLoader, have fun in downloading.
YouKuDownLoader所支持网站列表


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 宽字符(串)和多字节编码的UTF-8字符(串)如何转换?
帖子发表于 : 2010-03-18 0:30 
头像

注册: 2009-05-20 21:43
帖子: 735
送出感谢: 2
接收感谢: 2
cnkilior 写道:
查找libglib的文档,估计里面有的。

请问哪有libglib文档?
glib不是gtk+的底层库吗?


_________________
http://wonc.me/


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 宽字符(串)和多字节编码的UTF-8字符(串)如何转换?
帖子发表于 : 2010-03-19 15:09 
头像

注册: 2009-05-20 21:43
帖子: 735
送出感谢: 2
接收感谢: 2
感谢大家的关注!
这个问题不需要烦劳大家解决了...
man pages section 3 里面很多相关函数介绍, 只是在你不知道名字时候,很难找到它们...
之前我只知道 wprintf之类的函数, 它们的man pages 的see also部分没能让我发现更多函数...
今天我man 了一下 utf8,收益颇丰! utf8 的man page里面提到了 mbsrtowcs, 而以mbsrtowcs的
man page为起点, 一直see alse, 我发现了很多好用的函数...
===============================
说下我的感想:
man page以section分类, 尽管有see also, 但是其主题性仍然不强!
http://www.kernel.org/doc/man-pages的在线man页面只提供了按所属section排序和所有页面按字母
排序两种排序方法, 如果想查找关于某个主题的函数(比如字符编码), 仍然很抓狂!


_________________
http://wonc.me/


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 宽字符(串)和多字节编码的UTF-8字符(串)如何转换?
帖子发表于 : 2010-03-19 18:06 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
iconv 库?
所谓的宽字符也是有编码模式的吧,UTF-16 ?


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 宽字符(串)和多字节编码的UTF-8字符(串)如何转换?
帖子发表于 : 2010-03-20 10:12 
头像

注册: 2009-05-20 21:43
帖子: 735
送出感谢: 2
接收感谢: 2
BigSnake.NET 写道:
iconv 库?
所谓的宽字符也是有编码模式的吧,UTF-16 ?

问题在于宽字符中保存的每个字符所占用的字节都是定长的(实际上一个wchar_t字符里面保存的就是utf-32编码), 而utf-8多字节编码中的每个字符所占用的字节数是不确定的, 当然有类似 sentinel 的东西来标志那些字节共同来表示一个字符. 而实际上把utf-8中的sentinel去掉, 它仍是一个个兼容unicode的编码...
我的表述如有遗漏和错误, 欢迎指正!


_________________
http://wonc.me/


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译