字符串:多字节与宽字节转换

C 标准

#include
mbstowcs 多字节字符串转换为宽字符串
wcstombs 宽字符串转换为多字节字符串

使用注意:
对于 mbstowcs 函数来说,它需要知道多字节的编码类型才能正确的将其转换成宽字节的 unicode,很可惜这个编码类型并没有体现在函数的参数列表里,而是隐含依赖全局的 locale 。更加不幸的是,全局 locale 默认没有使用系统当前语言,而是设置为没什么用处的 “C” locale 。

在调用 mbstowcs 之前,先用 setlocale 将全局默认 locale 设为当前系统默认 locale
如果是在非中文系统上转 GBK 编码,就需要指定中文 locale :

#include 
setlocale(LC_ALL, "chs");

wcstombs例子:

#include 
#include 
#include #define BUFFER_SIZE 100int main( void )
{size_t  count;char    *pMBBuffer = (char *)malloc(BUFFER_SIZE);wchar_t *pWCBuffer = L"Hello, world.你好,世界。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部