ASNI to Unicode 转换与系统语言的问题

[版权说明]:转载我的文章,请注明出处,多谢!

环境:

(1) EVC4 +CE5.0 中文模拟器

(2) EVC + 英文Windows CE 5.0 开发板 + 中文字库

由于要读文件,文件中的字符采用的是ASNI,显示前需要转换为Unicode。使用函数mbstowcs()进行转换。

(1)在模拟器环境下,一切正常。转换与显示都没有问题。

(2)在开发板上,由于系统不支持中文,所以采用动态加载一ttf字库的方式。显示不经过转换的Unicode字符正常,但显示通过mbstowcs()转换的字符串,显示为乱码。

调试(单步)发现,mbstowcs()转换后的字符串,已经是乱码。导致无法正确显示。

分析:可能与系统是英文有关。由于mbstowcs()函数执行,可能需要转换码表,但是英文系统没有。

具体的原因不明!

另外,使用函数MultiByteToWideChar(CP_ACP,0,&cInfoTmp[2],-1,ptcOutLRC,(iLengthTmp - 2) / 2);也出现同样的问题。

解决方法:在定制CE系统时,增加Local(但没有设置为默认,也不系统当前使用的Local),则MultiByteToWideChar转换成功。

例如转换到中文(Locale为936):MultiByteToWideChar(936,0,&cInfoTmp[2],-1,ptcOutLRC,(iLengthTmp - 2) / 2);

解决过程见:http://topic.csdn.net/u/20080506/08/45c8a835-85f2-4427-a25f-e745197ee9e1.html?seed=824633417

时间: 2024-10-29 19:11:14

ASNI to Unicode 转换与系统语言的问题的相关文章

根据Unicode编码用C#语言把它转换成汉字的代码

rt 根据所具有的Unicode编码用C#语言把它转换成汉字的代码 师傅的代码: public static string UnicodeToGB(string text)         {             System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(text, "\\\\u([\\w]{4})");             i

Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解

博文说明[前言]: 本文将通过个人口吻介绍Linux字符集和系统语言设置,包括LANG,locale,LC_ALL,POSIX等命令及参数详解的相关知识,在目前时间点[2017年6月21号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 本文参考文献引用链接: 1.http://blog.csdn.net/z4213489/article/details/7937894[好文,必看]

cefSharp 设置运行时系统语言

在使用用CefSharp使用过程中,系统用了很多第三方控件.这些控件很多能够根据浏览器设置的语言来进行控件展示对应语言. 在cefSharp可以设置系统语言,代码如下: CefSharp.Settings setting = new CefSharp.Settings(); string flashPath = Application.StartupPath+ @"\Plug\gcswf32.dll"; setting.AddPluginPath(flashPath); //设置语言

JS 字符unicode转换函数

/**js Unicode编码转换*/ var decToHex = function(str) {    var res=[];    for(var i=0;i < str.length;i++)        res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);    return "\\u"+res.join("\\u");}var hexToDec = function(s

djnago unicode 转换成str list

from django.core.serializers.json import DjangoJSONEncoder group_name = puppet_host.objects.filter(ip=ip).values_list('host_group',flat=True) g_name = json.dumps(list(group_name), cls=DjangoJSONEncoder) unicode 转换成list definitions_list = [definition.

Android切换系统语言,自动更新应用界面显示语言

需要完成的功能是点击指定按钮后修改系统语言,并让应用跟随系统切换语言 private void switchLanguage(){ IActivityManager am = ActivityManagerNative.getDefault(); Configuration config = null ; try { config = am.getConfiguration(); //更改系统语言 if (config.locale.equals(Locale.SIMPLIFIED_CHINES

IOS APP 国际化(实现不跟随系统语言,不用重启应用,代码切换stroyboard ,xib ,图片,其他资源)

接了个变态的需求,要在程序内切换程序语言实现国际化. 可以先看看这个,比较详细. http://blog.csdn.net/xwren362922604/article/details/17190061 看完之后问题来了, 1,工程里面大量的 xib  或 storyboard 里面的UI 设定了text ,怎么实现让它们动态加载语言[非设置系统语言重启] 2,一个简单的思路,当代码触发切换语言 发个通知让 内存里的viewController 刷新UI的text .[工程里这么都vc 每个都加

Android - 系统语言(language)定制资源值(values)

系统语言(language)定制资源值(values) 本文地址: http://blog.csdn.net/caroline_wendy 语言代码参考: http://www.loc.gov/standards/iso639-2/php/code_list.php 创建资源值文件夹(values), 添加语言标记, 常用英文和繁体中文: values-en: 英文 values-zh-rTW: 繁体中文

iOS 应用程序内部国际化,不跟随系统语言

前言:网络上关于iOS国际化的文章很多,但基本上都是基于跟随系统语言的国际化,笔者就不赘述了-0 – 今天要讲的是不跟随系统的切换语言版本方案,即程序内部的切换语言版本方案. 一.总则: 应用内部语言不跟随系统语言,由应用自己进行控制,通过配置多个语言文件,根据用户的选择动态获取不同文件夹下的语言文件,显示在界面上. 最后把用户选择的语言持久化到本地,下次运行时读取. 二.应用内的国际化 1.新建工程 新建Single View Application工程,取名为MyInternational.