解决osgEarth中文显示乱码的几种方法
来源:互联网 发布:淘宝那里设置破损补寄 编辑:程序博客网 时间:2024/06/05 19:45
解决osgEarth中文显示乱码的几种方法
在此感谢那些在路上那个帮助过别人的朋友,谢谢。
方法一:
通过自己写函数转换类型。
下面这三个函数先复制过去吧。
{
int n = WideCharToMultiByte( CP_UTF8, 0, src.c_str(), -1, 0, 0, 0, 0 );
result.resize(n);
::WideCharToMultiByte( CP_UTF8, 0, src.c_str(), -1, (char*)result.c_str(), result.length(), 0, 0 );
}
void gb2312ToUnicode(const std::string& src, std::wstring& result)
{
int n = MultiByteToWideChar( CP_ACP, 0, src.c_str(), -1, NULL, 0 );
result.resize(n);
::MultiByteToWideChar( CP_ACP, 0, src.c_str(), -1, (LPWSTR)result.c_str(), result.length());
}
void gb2312ToUtf8(const std::string& src, std::string& result)
{
std::wstring strWideChar;
gb2312ToUnicode(src, strWideChar);
unicodeToUTF8(strWideChar, result);
}
接下来把需要显示的中文进行如下转换便可以使用了。
std::string _strName;
_strName = "你好";
std::string _strWideName;
gb2312ToUtf8(_strName,_strWideName)
-------------等等还是乱码。好吧的确有可能还是乱码,这里需要设置字体样式:
Style pin;
pin.getOrCreate<IconSymbol>()->url()->setLiteral("D:/osgearth/OSGOK/data/placemark32.png");//指定标注图片路径
pin.getOrCreate<osgEarth::Symbology::TextSymbol>()->font()="C:/Windows/Fonts/simhei.ttf";//指定中文字体路径
pin.getOrCreate<osgEarth::Symbology::TextSymbol>()->encoding() = osgEarth::Symbology::TextSymbol::ENCODING_UTF8;
pin.getOrCreate<TextSymbol>()->alignment() = TextSymbol::ALIGN_CENTER_CENTER;
pin.getOrCreate<TextSymbol>()->fill()->color() = Color::Red;
root->addChild( new PlaceNode(mapNode, GeoPoint(mapNode->getMapSRS(), 117.5, 39.38), _strWideName , pin));
把这个字体样式加上就可以成功显示中文了,好了吧。
方法二:
这是一种很酷炫的方法(其实跟方法二差不多啦)。
方法就是利用Qt的函数来处理中文,代码很简单,如下:
QString name="你好";
std::string _strWideName = std::string(name.toUtf8());
--------------等等别忘记额,这种方法任然需要设置字体样式(跟方法二相同)。
方法三:
修改源码重新编译。好吧,这种方式一劳永逸(网上有很多重新编译的需要修改源码的案例),这里我就不多做累述。
无图无真相:
- 解决osgEarth中文显示乱码的几种方法
- 解决Struts2中文乱码的几种方法
- 解决GET方式请求中文乱码的几种方法
- 解决SecureCRT中文显示乱码的两种方法
- 【Qt】]两种解决Qt5显示中文乱码的方法
- 【Qt】]两种解决Qt5显示中文乱码的方法
- 解决中文乱码的几种解决方案
- osgearth中文乱码问题
- osgEarth获取经纬度和高程的几种方法
- osgEarth获取经纬度和高程的几种方法
- osgEarth获取经纬度和高程的几种方法
- 解决Linux GUI下(Redhat-9.0)的中文乱码的几种方法
- 解决JSP页面显示中文乱码的方法
- 如何解决HTML网页中文显示乱码的方法
- Cocos2dx 解决中文乱码,显示汉字的方法
- cocos2d-x解决中文乱码问题的几种办法
- java解决中文乱码的几种情况
- cocos2d-x解决中文乱码问题的几种办法
- Python2学习笔记之gui和安装demjson库
- 九九乘法表
- mysql mac密码恢复
- Android层接收串口数据
- TFTP 配置 笔记
- 解决osgEarth中文显示乱码的几种方法
- 第三届ACM山东省赛 Pick apples [贪心+动规]
- mongodb java高级查询实例
- str-api && map()、reduce()
- WPF提取oracle数据库中数据显示到DataGrid控件上
- RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process .
- DDMS中data打不开
- android开发基本知识点
- 构造方法(初学者求教)