v8 windows vs 中文乱码
1.v8中string都是utf8格式,Local<String> v8Str = String::NewFromUtf8(...);
windows下默认系统编码是gb2312,vs中默认使用win系统的编码格式,也是gb2312
2.所以要做的是一开始把js脚本的字符串转成utf8格式,然后如果要把js脚本执行结果输出到控制台,再把直接结果转成gb2312格式,转换函数如下:
<pre name="code" class="cpp">char* EncodingTypeUtil::UTF8ToGBK(const char* utf8)
{int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);wchar_t* wstr = new wchar_t[len + 1];memset(wstr, 0, len + 1);MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr, len);len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);char* str = new char[len + 1];memset(str, 0, len + 1);WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, NULL, NULL);if (wstr) delete[] wstr;return str;
}std::string EncodingTypeUtil::GBKToUTF8(const std::string& strGBK)
{std::string strOutUTF8 = "";WCHAR * str1;int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);str1 = new WCHAR[n];MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n); n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);char * str2 = new char[n];WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);strOutUTF8 = str2;delete[]str1;str1 = NULL;delete[]str2;str2 = NULL;return strOutUTF8;
}
3.但是对于把js脚本字符串转成utf8格式,还有个更简单的方法:
#pragma execution_character_set("utf-8")
这是把字符串常量按照UTF8编码
4.偶然看到网上的一个办法: Cocos2d-x程序Windows下VC中文乱码的解决(用MultiByteToWideChar进行转换,VC2010有非常厉害的execution_character_set)
v8 windows vs 中文乱码相关推荐
- vim、gvim在windows下中文乱码的终极解决方案
From: http://www.liuhuadong.com/archives/68/index.html vim.gvim在windows下中文乱码的终极解决方案 在windows下vim的中文字 ...
- windows控制台中文乱码解决方法
windows控制台中文乱码解决方法 参考文章: (1)windows控制台中文乱码解决方法 (2)https://www.cnblogs.com/ziwuge/archive/2011/12/27/ ...
- 解决英文版Windows 2003中文乱码问题
解决英文版Windows2003中文乱码问题 首先,将英文版Windows2003光碟放在光驱: 1.打开"控制面板",双击"Regional and Langua ...
- cocos2dx 3.0 windows平台 中文乱码解决
From: http://www.cnblogs.com/yujiaao/p/3691938.html 因为linux下cocostudio wine安装不上 而且又要开发windows程序 果断舍弃 ...
- windows 10 中文乱码的解决
我是用visual Studio c++ 编写我的代码.打开以前的工程,发现里面的中文全部为乱码.查找解决办法,有说法是系统的问题,我就google windows 中文乱码. 答案链接如下: Re ...
- linux和windows接口中文乱码_使用jmeter进行接口自动化实例
testkuaibao|软件测试自学公众号 1.在excel中维护用例,包含域名.url.方法(get还是post). 参数 .预期结果(可以是多个),然后转化程csv格式,这样一来我们只需要在exc ...
- gvim在windows下中文乱码的终极解决方案
打开vim的配置文件,位置在/etc/vim/vimrc 在其中加入 set encoding=utf-8 set fileencodings=utf-8,gb2312,gbk,gb18030 set ...
- linux和windows接口中文乱码_Loadrunnerweb接口基础
对于只给web接口的按下面步骤,否则还是录制或者谷歌浏览器导出har文件比较轻松. POST: 1.询问接口参数的格式或者看浏览器,Content-Type 一般分为3种(标颜色的需要根据实际情况修改 ...
- ubuntu windows mysql 中文乱码解决
sudo gedit /etc/mysql/my.cnf [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' in ...
最新文章
- 每日一题 -- 11-1
- 上线随想之2011-03-27
- mongocollection java_mongodb与java的整合
- 2019计算机科学与技术全日制调济,华侨大学2019计算机科学与技术学院非全日制考研调剂信息(第二批)...
- MIGO+103收货到GR冻结库存和MB1B+344从非限制到冻结区别?
- iphone已停用解锁大概多少钱_【待办清单工具之三】微软To Do amp; iPhone提醒事项-来自大厂的时间管理系统...
- Spring MVC 中的 controller层的方法的返回值类型
- 8086汇编寄存器及指令汇总
- 使用Apache Storm和Kite SDK Morphlines的可配置ETL处理
- C++字符串完全指引之一(Win32 字符编码)
- centos服务器安装python3,CentOS7 服务器上如何安装python3
- 《JavaScript 学习指南》
- 娃哈哈的新品,为什么打动不了年轻人?
- python中每个if条件后面都要使用冒号_每个if条件后面都要使用冒号
- Tableau商业智能与可视化应用实战系列视频教程(史上最全)
- ColorPix 简单好用的屏幕取色小工具
- 红巨星粒子插件Trapcode Suite 14.0 Win版全套中文完美汉化版...
- 如何在win10下配置MySQL环境变量?
- linux桌面应用小结,Linux桌面应用技巧大全
- AVR单片机用progisp下载时报错Chip Enable Program Error