字符串:多字节与宽字节转换
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.你好,世界。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
