LInux下使用mbstowcs函数可以将char转化为wchar_t

函数含义:convert a multibyte string to a wide char string

说明:       The behaviour of mbstowcs depends on the LC_CTYPE category of the current locale

返回值:   The  mbstowcs() function returns the number of wide characters that make up the converted part of the wide-char-acter string, not including the terminating null wide character.  If an invalid multibyte sequence  was  encountered, (size_t) -1 is returned.

注意:wcout 与cout不要混合使用,否则会导致wchar_t的输出问题

代码:

#include

#include

#include

#include

#include

#include

using namespace std;

// 将char类型转化为wchar

// src: 源

// dest: 目标

// locale: 环境变量的值,mbstowcs依赖此值来判断src的编码方式

// 运行成功返回0 否则返回-1

//

int ToWchar(char* &src, wchar_t* &dest, const char *locale = "zh_CN.utf8")

{

if (src == NULL) {

dest = NULL;

return 0;

}

// 根据环境变量设置locale

setlocale(LC_CTYPE, locale);

// 得到转化为需要的宽字符大小

int w_size = mbstowcs(NULL, src, 0) + 1;

// w_size = 0 说明mbstowcs返回值为-1。即在运行过程中遇到了非法字符(很有可能使locale

// 没有设置正确)

if (w_size == 0) {

dest = NULL;

return -1;

}

wcout << "w_size" << w_size << endl;

dest = new wchar_t[w_size];

if (!dest) {

return -1;

}

int ret = mbstowcs(dest, src, strlen(src)+1);

if (ret <= 0) {

return -1;

}

return 0;

}

int main()

{

char* str = "中国123";

wchar_t *w_str ;

ToWchar(str,w_str);

wcout << w_str[0] << "--" << w_str[1] << "--" << w_str[2];

delete(w_str);

return 0;

}

linux下中文的wchar转char,Linux 下char转换为wchar_t相关推荐

  1. linux下中文的wchar转char,Linux下 wchar_t 与char 转换

    为了支持多语言,需要支持宽字符,Linux下用wchar_t表示,wchar_t最大长度4个字节,已经可以囊括世界上所有的语言编码,中文字符在gb2312编码下用2个字节表示,但用utf-8编码需要3 ...

  2. linux qq 中文输入法下载,百度输入法Linux版

    百度输入法Linux版 百度输入法Linux版软件简介:百度输入法Linux版适用拼音字母.五笔二种中文输入方法,拼音输入适用全拼音.简影,也支持英文键入方式,还有着智能化改错.云键入.全句想到等特点 ...

  3. linux程序设计中文第4百度云,Linux程序设计中文第4版-有书签.pdf

    言函数库和由不同的Linux或UNIX标准指定的各种工具的使用方法,大多数标准Linux开发工具的使用方法,通过DBM和MySQL数据库系统存储Linux中的数据,为x视窗系统建立图形化用户界面等.& ...

  4. linux qt中文输入法,解决 Ubuntu 14.04 下 Qt5 中文显示和中文输入法问题

    1qt5安装 软件中心中安装 qt creater,此时Qt无法显示中文 且无法输入中文 如果要设置中文等语言,还要下载一些语言文件.可以到http://qt-project.org上下载一个包,安装 ...

  5. linux ls 中文乱码_每天一个linux命令:Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  6. linux安装 中文乱码怎么解决方法,Linux安装GBK/GB2312程序显示乱码的五种解决方法...

    不少用户在Linux系统中安装GBK或GB2312的时候遇到了乱码问题,这主要是系统默认语言是uft8所导致,对于该问题可用五种方法进行解决,接下来是小编为大家收集的Linux安装GBK/GB2312 ...

  7. Linux 安装中文 man 手册

    Linux 安装中文 man 手册 Linux 安装中文 man 手册章节介绍 centos 安装中文 man 手册1 centos 安装中文 man 手册2 Ubuntu安装 源码安装 环境变量配置 ...

  8. linux redhat中文字体安装,中文Linuxredhat中文字体安装

    Linux redhat中文字体安装 安装完linux redhat 5.4打开浏览器发现显示中文全部成了乱码原来在安装的时候没有选择安装中文字体支持包打开系统的镜像找到中文字体的相关安装包如 ...

  9. linux redhat中文字体安装,Linux redhat中文字体安装.doc

    Linux redhat中文字体安装 Linux redhat中文字体安装 安装完linux redhat 5.4,打开浏览器发现显示中文全部成了乱码,原来在安装的时候没有选择安装中文字体支持包,打开 ...

最新文章

  1. VTK:图表之RemoveIsolatedVertices
  2. tensorflow 之 最近用到的几个小操作tf.reshape,tf.convert_to_tensor,tf.where
  3. mysql数据类型优化
  4. Spring系列(十):@Autowired 和@Resource注解用法介绍
  5. ruby中的self
  6. linux nginx 配置优化,nginx 配置优化指令
  7. flume消费kafka数据太慢_kafka补充01
  8. 公交换乘 详解(C++)
  9. micro macro 区别和详解
  10. halcon教程之VisionPro软件和Halcon软件 的详细对比
  11. 中国“古诗词”数据库还有可用的API
  12. 快速打开ofd文件发票转换pdf格式发票方法
  13. 来几个有趣的Linux指令 (转自Chinaitlab)
  14. 计算机相关的oa资源,计算机类OA期刊搜集与分析.pdf
  15. 2021年8月--最新免费国内1000个http代理ip
  16. 计算机组成原理中FZ,计算机组成原理实验二.doc
  17. Linux使用tar命令进行磁带备份
  18. 全屏背景视频和混合模式文本的实现
  19. mysql 当前时间小时制_日期函数——MYSQL
  20. 分身竞选总统?法国总统竞选这么干! 全息3d网

热门文章

  1. 项目: 用数组实现反弹球消砖块
  2. Spring boot删除员工
  3. python tab符号_Python3 expandtabs()方法
  4. 下列不是c语言浮点常量的是,C语言二级题库.doc
  5. 为什么大厂都用DevOps呢?我来告诉你
  6. Java 支付项目实战教程,包括支付宝,微信等支付方式,不看亏!
  7. 浏览器访问solr报错:HTTP Status 500 - {msg=SolrCore 'collection1' is not available due to init failure
  8. UI组件之AdapterView及其子类(二)GridView网格视图的使用
  9. Oracle存储过程procedure与函数function区别
  10. java IO流面试总结