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

Posted wanghaiyang1930

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("\xe4\xb8\xad\xe6\x96\x87") );

  其中"\xe4\xb8\xad\xe6\x96\x87"字符串就是多字节下"中文"转换成UTF8编码的的编码。

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

以上是关于JUCE 界面库显示中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

linux下JUCE源码编译依赖库

关于如何使用 JUCE 托管 VST 插件的教程? [关闭]

VST 主机 - 泄漏的对象 - Juce/C++

Juce源代码分析应用程序基类ApplicationBase

JUCE 无法在音频插件上插入按钮

如何使用 juce 的 FileFilter 描述我想要的文件过滤器?