解决win下的文件到Ubuntu上显示乱码的问题

本文提供两种解决Ubuntu系统中打开TXT文件出现乱码的方法。第一种方法通过gconf-editor编辑器来设置字符编码;第二种方法利用dconf-editor进行设置。推荐使用第二种方法。

原文地址:http://www.2cto.com/os/201210/159321.html

-----------------------手动备份-----------------------------------

ubuntu下打开txt文件乱码的解决

 
方法一:
 
终端输入gconf-editor调出gconf-edit
  www.2cto.com  
(如若没安装请用 sudo apt-get install gconf-editor 命令安装)
 
PS:输入gconf-editor即可,前面不需要加Sudo
 
依次点开
 
apps->gedit-2->preferences->encodings 中的auto-detected
 
在双击弹出对话框中加入GB18030,GBK,GB2312,然后将GB18030,GB2312移到最上
 
方法二:  www.2cto.com  
 
终端输入 sudo apt-get install dconf-tools 安装,然后输入sudo dconf-editor调出dconf-editor
 
依次点开
 
org->gnome->gedit->prefrences->encoding中的auto-detected的value改为:['GB18030', 'GB2312', 'GBK', 'UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16'],直接回车保存就好!!
 
 个人倾向于使用第二种方法!因为新安装的ubuntu的gconf-editor里面没有auto-detected,新手一般不会设置!

### Win32开发环境中中文乱码解决方案及编码设置 在Win32开发环境中,中文乱码问题通常与字符编码、文件保存格式以及IDE的配置相关。以下是解决Win32开发环境中的中文乱码问题的具体方法: #### 1. **修复集成开发环境(IDE)中的中文乱码问题** 在Visual Studio中,可以通过调整文件的编码格式来解决中文乱码问题。确保文件以UTF-8无签名的方式保存,并启用自动检测UTF-8文档的功能[^1]。 ```plaintext 具体步骤如下: - 打开Visual Studio中的“高级保存选项”。 - 将文件保存为“UTF-8(无签名)”。 - 在菜单栏中选择:工具 -> 选项 -> 文本编辑器 -> 自动检测不带签名UTF-8文档。 ``` #### 2. **跨平台开发中的编码一致性** 当代码需要在不同操作系统(如Windows和Linux)之间共享时,编码格式的一致性尤为重要。例如,在Win32/VS2005环境下开发的代码可能在Ubuntu下出现乱码问题,反之亦然。这是因为文件头部的BOM(Byte Order Mark)签名可能导致编译错误或显示乱码[^2]。 ```plaintext 解决方案: - 确保所有文件均以“UTF-8(无签名)”格式保存。 - 在Visual Studio中启用“自动检测不带签名UTF-8文档”功能。 ``` #### 3. **Cocos2d-x中的中文乱码处理** 在使用Cocos2d-x框架进行Win32平台开发时,可以借助`iconv`库实现字符编码转换,从而解决中文乱码问题。通过将GBK编码的字符串转换为UTF-8编码,可以确保中文字符在Win32平台上正确显示[^3]。 ```cpp #include "tools.h" #include "iconv\iconv.h" int GBKToUTF8(std::string& gbkStr, const char* toCode, const char* formCode) { iconv_t iconvH = iconv_open(toCode, formCode); if (iconvH == 0) { return -1; } const char* strChar = gbkStr.c_str(); const char** pin = &strChar; size_t strLength = gbkStr.length(); char* outbuf = (char*)malloc(strLength * 4); char* pBuff = outbuf; memset(outbuf, 0, strLength * 4); size_t outLength = strLength * 4; if (-1 == iconv(iconvH, pin, &strLength, &outbuf, &outLength)) { iconv_close(iconvH); return -1; } gbkStr = pBuff; iconv_close(iconvH); return 0; } const char* GBKToUTF(std::string& gbkStr) { GBKToUTF8(gbkStr, "utf-8", "gbk"); return gbkStr.c_str(); } ``` #### 4. **Windows应用程序详细信息中的中文乱码** 在Windows下使用Qt开发时,如果生成的exe或dll文件的“详细信息”中出现中文乱码,可以通过正确配置资源文件(`.rc`)来解决。确保`.rc`文件中的语言和字符集设置正确,并指定支持中文的语言代码[^4]。 ```plaintext 示例.rc文件内容: #include "winver.h" IDI_ICON1 ICON DISCARDABLE "crm.ico" VS_VERSION_INFO VERSIONINFO FILEVERSION 4,4,0,1 PRODUCTVERSION 4,4,0,1 FILEFLAGS 0x0L FILEFLAGSMASK 0x3fL FILEOS 0x00040004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "080404b0" // 支持简体中文 BEGIN VALUE "CompanyName", "XXXX科技有限公司" VALUE "FileDescription", "XXXXXXX系统" VALUE "FileVersion", "1.0.0.0" VALUE "LegalCopyright", "Copyright (c) 2019 XXXX科技有限公司" VALUE "InternalName", "" VALUE "OriginalFilename", "origin.exe" VALUE "ProductName", "XXXX系统" VALUE "ProductVersion", "4.4.0.1" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x804, 1200 // 语言-简体中文 END END ``` 配置`.pro`文件以包含资源文件: ```plaintext win32:RC_FILE = res/app.rc ``` #### 5. **总结** 中文乱码问题的根本原因在于字符编码不一致或未正确处理多语言字符集。通过确保文件以UTF-8无签名格式保存、启用IDE的自动检测功能、使用`iconv`库进行编码转换以及正确配置资源文件,可以有效解决Win32开发环境中的中文乱码问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值