zoukankan      html  css  js  c++  java
  • 关于Cocos2d-x中文乱码问题的解决

    方法一:

    1.首先,复制下面的代码,创建一个icov,h的头文件,并放在项目目录下

    #include "stdlib.h"
    #include "string.h"

    #ifdef WIN32
    //调用时使用这个宏
    #define UTEXT(str) GBKToUTF8(str)
    #else
    #define UTEXT(str) str
    #endif
    #ifdef WIN32
    #include "..cocos2d-x-3.10externalwin32-specificiconincludeiconv.h"
    static char g_GBKConvUTF8Buf[5000] = { 0 };
    const char* GBKToUTF8(const char *strChar)
    {
    iconv_t iconvH;
    iconvH = iconv_open("utf-8", "gb2312");
    if (iconvH == 0)
    {
    return NULL;
    }
    size_t strLength = strlen(strChar);
    size_t outLength = strLength << 2;
    size_t copyLength = outLength;
    memset(g_GBKConvUTF8Buf, 0, 5000);
    char* outbuf = (char*)malloc(outLength);
    char* pBuff = outbuf;
    memset(outbuf, 0, outLength);
    if (-1 == iconv(iconvH, &strChar, &strLength, &outbuf, &outLength))
    {
    iconv_close(iconvH);
    return NULL;
    }
    memcpy(g_GBKConvUTF8Buf, pBuff, copyLength);
    free(pBuff);
    iconv_close(iconvH);
    return g_GBKConvUTF8Buf;
    }
    #endif

    2.等到要写中文的时候,先#include "icov.h",然后在有字符串的地方用宏进行强制的转换

    UTEXT("蓝鸥科技")

    例子

    displayValueLabel = Label::createWithSystemFont(UTEXT("蓝鸥科技"), "Marker Felt", 32);

    3.运行就可以显示正常的中文了

    方法二:

    1.把鼠标移动并点击想要显示中文的那一行代码

    2.点击文件-高级保存选项-选择UTF-8 无签名 65001的编码

    3.确定-再保存一下经过更改的.cpp文件

    4.运行就可以显示正常的中文了

    5.如果还不行的话,再进行高级保存一次,这次在行尾的那个选项选Windows(CR LF)

    这里的行尾当前位置是指鼠标放的地方是编码有执行到的地方(我是这样理解的,但是好像没什么作用)

  • 相关阅读:
    Web服务器安全设置
    java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
    Java IO和Java NIO在文件拷贝上的性能差异分析
    Java高效读取大文件
    NIO入门之轻松读取大文件
    我来说说java的NIO
    java读取大文件 超大文件的几种方法
    @RequestBody 的正确使用办法
    友鱼项目知识点
    怎样查看Tomcat动态控制台信息
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5499145.html
Copyright © 2011-2022 走看看