wcstombs和mbstowcs使用
来源:互联网 发布:淘宝怎么预约上门取件 编辑:程序博客网 时间:2024/05/29 04:45
本题转自:http://www.cppblog.com/fwxjj/archive/2010/05/25/116305.html
mbs: multi byte string, 用char作为存储类型, 一个字符可能对应1个或者多个char, 不能直接确定字符边界. charset不确定. 过去的程序都是采用mbs的.
wcs: wide character string, 用wchar_t作为存储类型, 一个字符对于一个wchar_t. 使用unicode编码, charset与OS相关, 在windows平台中为UTF16(UCS-2), 在大多数unix平台中为UTF32(UCS-4).
国际化的程序都应该在内部使用wcs, 在输入输出时做mbs与wcs的转换.
mbs与wcs的转换函数:
wcstombs/mbstowcs是实现转换的一对函数. wcs的charset是固定不可变的, 但是mbs的charset是可变的, 可能是ASCII, 可能是gb2312, 也可能是big5. wcstombs/mbstowcs是根据locale环境设置来决定mbs采用的charset的, 在程序中可以用setlocale来设定locale, 例如 setlocale(LC_ALL, "chinese")
程序启动时, locale设定为 LC_ALL="C", 用 setlocale(LC_ALL, "") 就可以设置成操作系统的locale设定.
Locale决定了当前程序运行的本地化设置方式, 但是在程序中可能需要作其他charset的转换, 例如程序本身语言设定为简体中文, 需要做big5与unicode的转换, 或者是其他两种charset的mbstombs转换, 这时wcstombs/mbstowcs就不能胜任了. 在unix平台中可以使用iconv来做这个转换(iconv lib也有windows版本), 在windows平台可以用MultiByteToWideChar/WideCharToMultiByte 函数.
参考资料: http://xcin.linux.org.tw/i18n/pc2000/p3/chinese-3.html
----------------------------------------------------------------
wcstombs和mbstowcs使用
#include <locale.h>
setlocale(LC_ALL, ".936");
wcstombs(char * to,wchar_t * from,size_t _maxCount);
mbstowcs(wchar_t * to,char * from,size_t _maxCount);
- wcstombs和mbstowcs使用
- wcstombs和mbstowcs使用
- mbstowcs 和 wcstombs
- C/C++中的i18n(wcstombs和mbstowcs使用)(转帖)
- C/C++中的i18n(wcstombs和mbstowcs使用)
- mbstowcs()/wcstombs()
- mbstowcs()/wcstombs()
- mbstowcs,wcstombs,WideChar…
- Linux两个函数mbstowcs() 与wcstombs()
- 宽字节 多字节 mbstowcs wcstombs
- linux没有WideCharToMultiByte,MultiByteToWideChar,换用mbstowcs,wcstombs
- _tcschrs,_tcslen,WideCharToMultiByte,MultiByteToWideChar,mbstowcs,wcstombs字符串操作
- mbstowcs()/wcstombs() 函数 宽字符转多字符互转
- wcstombs()的使用
- wcstombs的使用
- mbstowcs
- 关于char,wchar_t以及转化的函数mbstowcs,wcstombs,WideCharToMultiByte,MultiByteToWideChar
- wcstombs
- Rational Rose2003 安装及破解
- Sql server Insert执行的秘密(上)一个最简单的INSERT分析
- ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel
- JSF笔记
- 异地恋-百度百科
- wcstombs和mbstowcs使用
- open()
- 一款比较简单实用的js模态框
- 构建arm linux gcc 交叉编译器 (下) gcc v4
- Android 平台搭建
- http 头信息详解
- JVM内存设置
- Arbitrage hdu 1217 最长路Floyd
- Web 设计师的 50 个超便利工具(上)