当前位置: 首页 > article >正文

解决资源字符串乱码问题

 多语种资源的转换 
 语言资源转换问题
    不同国家的人使用着不同语言的操作系统,在Microsoft Windows 下,语言用代码页来识别,不同种类语言则用不同代码页来表示,如“简体中文”用代码页936表示,而"美国英语“则用代码页1252来表示。
    在用Visual C++开发应用程序时,与语种相关信息一般存储在资源文件(*.RC)中。因此,要编制不同语种的应用程序,实质上是要求编写出不同育种的资源文件。在编程时,我们可将不同语种的资源文渐编译成相应的动态连接库。这样,在实际使用时,可根据操作系统所使用代码页异同,选用相应语种的资源文件编译而成的动态连接库,即可使应用程序正常运行。这就是所谓的多国语言编程问题。
    如何进行资源转换
    下面以将资源文件从代码页936(见体中文)转换到代码页1252(美国英语)为例进行说明。即已有了一代码页为936的资源文件,在资源内容不变的情况下,如何将其转换为代码页为1252的资源文件。
    容易想到的但会带来灾难性后果的方法是,直接修改资源的属性。这种方法时,将Microsoft Visual C++的Workspace 窗口切换到Resource View,选中某项资源,单击右健,从弹处菜单中选择“Properties”命令,在弹处对话框中,修改Language项的值。但是,经过次中修改,再打开资源,会发现资源里的内容变成了一堆不可读的乱码。
    正确的方法是:以某文件编辑器打开资源文件,在其中查找"Language",找到后可看到入下所示:
    //Chinese (P.R.C) resources
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
    #ifdef _WIN32
    LANGUAGE LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED
    #pragma code_page(936)
    #endif //_WIN32
    这段代码表示当前使用的代码页为936,所代表的语种为简体中文,将以下代码用如下代码替换:
    //English (U.S) resources
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
    #ifdef _WIN32
    LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US
    #pragma code_page(1252)
    #endif //_WIN32

http://www.lryc.cn/news/2414795.html

相关文章:

  • 《龙门飞甲》高清完整版BD-RMVB.国语中字 最新陈坤、李宇春、李连杰、周迅动作大片...
  • 2011年最火爆的20大商机和创业概念
  • 杀毒软件技术 脱壳、虚拟、启发式介绍
  • Java开发常用软件下载地址合集
  • 删除多余启动项和删除垃圾文件
  • Typora中的emoji图标标签
  • 网页中嵌入swf文件的几种方法(转)
  • esp32-S3专题三:外设1之WIFI的扫描和sta模式使用
  • onlylady 摘录-婚礼回礼
  • 乐优商城(六)ElasticSearch搜索
  • android studio虚拟机运行react-native项目全流程(避坑笔记)
  • JSP中的JavaBean的基本使用方法
  • 华为发布凌霄芯片华为正式发布鸿蒙,凌霄芯片
  • 选举算法
  • 同一个网站可以放2个服务器吗,两个网站放在同一个服务器 备案
  • 40个在线杀毒网站
  • xftp6设置默认打开文件的程序_Xshell、Xftp 5、6 解决“要继续使用此程序,您必须应用最新的更新或使用新版本”...
  • Windows平台下常见快捷指令
  • HMS Core携手厦门大学打造AR增强现实技术
  • 由于该计算机受到限制本次操作已被取消请与你的系统管理员联系
  • python爬虫总结,看这篇就够了
  • 网络入门基础(基本网络的了解和配置)
  • 快手狂人
  • 虚拟环境安装,ubuntu18和16的一些不同
  • 简报 | 欧洲区块链投资 将达到8.15亿欧元
  • 亚马逊云科技为企业出海提供全方位的安全合规保障
  • EXCEL难题一网打尽 无意间看到的 转过来 自己看看
  • 探索Web前端:新手必看的入门指南
  • js实现数组浅拷贝和深拷贝
  • 秋招Java开发----牛客刷题错题总结