使用不同语系在起始安装出现乱码
来源:互联网 发布:200入门耳机推荐 知乎 编辑:程序博客网 时间:2024/06/05 07:48
这个状况是有针对性的,所以请注意图片,此问题也会发生在 VS2008 ,只是用 VS2005 为范本来说。
主要的问题是你用的编译程序语系与你开发的语系不同,例如用繁中版开发英文版软件,大部分的状况都能正确显示英文,但却会发生当你安装你的软件在没有指定必要系统组件时,在散布免责声明 (EULA) 时发生乱码,例如没有 .Net framework 2.0 时,如下图。
这个问题是由 setup.exe 产生的,直接执行 setup.msi 则不会有此问题,如下图。
探究此问题的成因是,setup.exe 是由下面数个部分组成:
1. 基底二进制文件,$(BootStrapper)/Engine/setup.bin
2. 语系资源,$(BootStrapper)/Engine/$(lang)/setup.xml
3. 产品信息,$(BootStrapper)/Packages/$(Product)/product.xml
4. 封装信息,$(BootStrapper)/Packages/$(Product)/$(lang)/package.xml
5. 散布授权免责声明,$(BootStrapper)/Packages/$(Product)/$(lang)/eula.txt
其中 $(BootStrapper):
VS2005: C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/BootStrapper
VS2008: C:/Program Files/Microsoft SDKs/Windows/v6.0A/Bootstrapper
因此要解决乱码的问题很单纯,把:
$(BootStrapper)/Packages/DotNetFX/zh-CHT/eula.txt
换成英文版的 eula.txt 即可。
英文版的 eula.txt 哪里来?将:
$(BootStrapper)/Packages/DotNetFX/dotnetfx.exe
用 WinRAR 解压缩后,可得到各语系版本的 eula.langid.txt ,比较中文版 eula.1028.txt 与 eula.txt 的差异,只有差在少第三、四行,且 eula.txt 使用 UTF-8 格式,eula.1028.txt 使用 Unicode 格式:
MICROSOFT WINDOWS INSTALLER 2.0
MICROSOFT WINDOWS INSTALLER 3.1
跟最后少个句号,所以我们把英文版的 eula.1033.txt 插入三、四行,另存成 UTF-8 格式,并取代:
$(BootStrapper)/Packages/DotNetFX/zh-CHT/eula.txt
重新编译后可得下图:
即可解决乱码问题。如果是其他语系或必要系统组件,也可依此方式修改。我找过微软没提供不同语系版本的 eula.txt 可下载,如果你真的要完全一字不错,你可能要安装不同版本的 Visual Studio 来取得,我自己选择从 .Net framework 2.0 Runtime 里面的 eula 来改。
另外考虑到经常性的需求,我是建议保存原始的 eula.txt ,更名为 eula.1028.txt ,等到需要哪个语系的 eula.txt 时,直接复制一个来取代 eula.txt 即可,如下图。
标准的封装部署项目,只能用此方法来处理,ClickOnce 项目可自定义 xml 的设定,指定 eula.txt ,会比这个方法简单,不需要动到软件源目录,可依需求选用。
参考信息:
http://msdn.microsoft.com/zh-tw/library/aa730839(en-us).aspx
http://msdn.microsoft.com/en-us/magazine/cc163899.aspx
下载参考:
我自制的 eula.1033.txt (压缩成 ZIP)
- 使用不同语系在起始安装出现乱码
- 系统出现乱码的原因和语系编码转换
- 在Discuz论坛安装出现乱码时
- Delphi使用StrToDatetime在不同操作系统出现不同的情况
- Delphi使用StrToDatetime在不同操作系统出现不同的情况
- Office 安装出现乱码
- IBM安装出现乱码
- 数字在排序数组中出现的起始索引号
- java调oracle存储过程在不同服务器上出现乱码
- 在SecureCRT中使用tree命令出现乱码
- 在使用SQLite插入数据时出现乱码的解决办法
- 在MAC平台下使用Eclipse出现了中文乱码
- 解决在idea中使用maven插件时出现乱码
- 在vs2015中使用qt5出现中文乱码的问题
- udig设置样式在Geoserver使用出现汉字乱码问题
- redhat安装中文出现乱码
- VMWare 11 安装 出现乱码
- 按照起始时间查询(oralce和mysql写法不同)在.xml里面配置
- 笔试(淘宝)
- 断章取义
- GeoMedia数据转MapInfo格式(投影Non-Earth)过程简述
- 使用CSS打造很有亲和力的各种web2.0操作提示效果 使用CSS打造很有亲和力的各种web2.0操作提示效果
- oracle常用表
- 使用不同语系在起始安装出现乱码
- IE6 重复字符的bug及解决方法
- MIPS Quick Tutorial [转载自 http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm]
- TPC,TPCC,TPMC(计算机性能衡量指标)
- 如何查看和清除Windows本地的DNS缓存内容
- mysql程序拷贝
- 用CSS使2个DIV高度自适应
- 测试错误处理分类标准
- CSS美化文件域(文件选择框 input type=file)