• 关于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)

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

  • 相关阅读:
    Create Your Tab and LayerTabMenu In Katana
    Linux C Programing
    Linux C Programing
    dynamics_cast<>
    TBB 学习笔记
    冒泡排序算法
    Spring4学习笔记:Spring框架中为一个bean配置依赖注入的方式
    基数排序算法的Java实现
    堆排序算法的Java实现与分析
    贪心算法
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5499145.html
Copyright © 2020-2023  润新知