zoukankan      html  css  js  c++  java
  • JUCE 界面库显示中文乱码问题

    JUCE 界面库显示中文乱码问题

    环境:
      Windows7 64位 旗舰版
      Visual Studio Ultimate 2012
      JUCE 4.1

    问题描述:
      直接使用juce::String存储中文(String str="中文"),运行过程中报错,提示需要指定具体的编码类型,由于CharPointer_ASCII只能处理编码在127以下的字符,所以CharPointer_ASCII不能处理中文,而使用CharPointer_UTF8将UTF8编码的字符串转给String,但是显示到界面上却是乱码,由此出现了JUCE中文乱码的问题。

    解决办法:

      1.修改JUCE工程的AppConfig.h中的JUCE_USE_DIRECTWRITE,(请参考)修改后如下所示:

    1 #ifndef    JUCE_USE_DIRECTWRITE
    2     #define JUCE_USE_DIRECTWRITE 0
    3 #endif

      2.在主应用程序的initialise函数中添加如下代码:
        如:继承自JUCEApplication的子类的initialise()函数的开始:

    LookAndFeel &laf = LookAndFeel::getDefaultLookAndFeel();
    laf.setDefaultSansSerifTypefaceName( "YeHei Consolas Hybrid" );

        其中"YeHei Consolas Hybrid"字符串来自于[c:windows/fonts]目录下的字体类型名称,去掉后面的空格和“常规”;

      3.在需要使用中文字符的地方使用如下代码:

    1 juce::String str( juce::CharPointer_UTF8("xe4xb8xadxe6x96x87") );

      其中"xe4xb8xadxe6x96x87"字符串就是多字节下"中文"转换成UTF8编码的的编码。

    版权所有,转载请注明出处!

  • 相关阅读:
    逐步解析ASP.NET请求响应流程图(B/S IIS)
    UML类图表示
    aspnet_isapi.dll扩展注册
    .NET请求编译流程图(解释为什么第一次请求比较慢)
    前台线程和后台线程的区别
    IIS的内部原理
    is和as的区别
    Javascript限制多行文本输入框的字符数(转载)
    事件触发
    查看ASP.NET2.0编译后的源代码的方法
  • 原文地址:https://www.cnblogs.com/wanghaiyang1930/p/5329568.html
Copyright © 2011-2022 走看看