`
lwx522
  • 浏览: 35963 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何处理Linux汉字乱码

 
阅读更多

Linux下,你有没有这样的经历,文本文件里面的汉字显示都是正常的,可一插到数据库里就变成了乱码;文件名在本机显示都很正常,一传到服务器上显示的都变成乱码了,最近就差点被这个问题搞死,最后还算小有收获,这里写一下心得:

  1,首先要知道文件自己的编码方式,就是文件是以utf8还是以gbk等编码方式存储的,因为这是根本。以xxxdat文件为例
  用vi命令打开xxxdat文件
  在命令行模式:输入set fileencoding 这时会在终端的底部显示文件的编码方式,显示的结果如果是cp936(等同于gbk)或者utf8等,那说明文件的编码方式已经被正确判断出来了,如果是latin1,我们就可能要设定VIfileencodings这个环境变量的值,打开vimrc这个文件,RHEL的这个文件在/etc目录下、Ubuntu/etc/vim目录下;或者你也可以建一个~/vimrc文件
  然后把里面merge成:set fileencodingsucsbomutf8cp936gb18030big5eucjpeuckrlatin1 然后重新vi xxxdat
  PS:我们打开文件的时候, VIM 按顺序使用 fileencodings 中的编码进行尝试解码,如果成功的话,就使用该编码方式进行解码,并将 fileencoding 设置为这个值,如果失败的话,就继续试验下一个编码。而latin1 是一种非常宽松的编码方式,任何一种编码方式得到的文本, latin1 进行解码,都不会发生解码失败——当然,解码得到的结果自然也就是理所当然的“乱码”
  2,下一个比较重要的就是LANG这个环境变量了(关于这个变量的含义和作用自己百度,可以搜出一堆)
  假如xxxdat是以utf8编码,往数据库里插的时候,我们就需要把LANG这个环境变量设成LANGzh_CNutf8,如果xxxdat是以cp936LANG就需要设成LANGzh_CNgbk
  这样在插入的时候,就不需要用程序对文件的字符进行转换,可以直接插入
  PS:用locale a命令查看可以把LANG设成哪些值,locale m 查看系统支持哪些字符集,假如locale a没有你所需要的值,比如zh_CNgbk,那就需要手动安装,安装方法也很简单
  a sudo cp /var/lib/locales/supportedd/local /var/lib/locales/supportedd/localold【可选,备份】
  b sudo cp /usr/share/i18n/SUPPORTED /var/lib/locales/supportedd/local
  编辑/var/lib/locales/supportedd/local去掉大多数不用的行(locales
  c sudo dpkgreconfigure locales
  编辑/etc/environment文件,设置一下要用的LANG
  也可以用localegen命令设置默认的locale,如sudo localegen zh_CNUTF8
  3,还有一个同事,LANG环境变量(这里要注意环境变量生效的范围)也已经改过了,把windows的文件重新传到了Linux服务器上,通过网页浏览,文件名仍然是乱码,这是因为LANG还未在apache服务器上生效,重启一下apache服务就可以了
分享到:
评论

相关推荐

    Linux上安装Oracle汉字乱码完整解决方案

    在Linux环境下安装Oracle数据库时,遇到汉字乱码问题是一个常见的挑战。这个问题主要出现在Oracle数据库的字符集设置与系统默认的字符集不匹配,或者缺少必要的中文字体。本文提供了一个完整的解决方案,旨在帮助...

    Linux上安装Oracle汉字乱码完整解决方案_javacn

    总的来说,处理Linux上的Oracle汉字乱码问题需要对Oracle数据库的字符集机制有深入理解,并且在每个环节都要细心配置。遵循以上步骤和建议,应该能有效避免和解决乱码问题。在实际操作中,如果遇到具体问题,可以...

    Linux上Oracle安装前汉字乱码和安装后创建数据库乱码的解决方法(含附件)

    在Linux环境中安装Oracle数据库时,可能会遇到汉字乱码的问题,这不仅影响了正常的安装过程,也可能导致后续数据库操作中的数据不准确。以下是一份详细的解决此类问题的指南,旨在帮助你顺利进行Oracle安装并创建无...

    linux汉字乱麻问题

    ### Linux汉字乱码问题解析及解决方案 #### 一、问题背景 在Linux系统中,由于字符编码设置不当或环境变量配置错误,用户经常会遇到汉字显示为乱码的问题。这种情况不仅影响用户体验,还可能导致数据处理出错。本文...

    linux 中文显示乱码解决办法

    ### Linux中文显示乱码解决办法 #### 背景与问题描述 在使用Linux系统时,用户可能会遇到中文字符显示为乱码的情况。这通常是因为系统当前使用的...希望这些解决方案能够帮助初学者更好地使用Linux系统处理中文内容。

    jfreehchar在LINUX下中文乱码的解决

    在Linux环境下,使用JFreeChart库进行数据可视化时,可能会遇到中文乱码的问题。这个问题主要源于JFreeChart在渲染图表时,对字符编码的处理不当,导致非ASCII字符(如中文)无法正确显示。以下是一份详细的解决方案...

    处理linux java图片中文字显示方块乱码

    java——图片字体显示方块问题处理 /usr/java/jdk1.7.0_80/jre/lib/fonts/fallback msyhbd.ttf msyh.ttf wqy-microhei.ttf /usr/java/jdk1.7.0_80/lib/fonts/fallback msyhbd.ttf msyh.ttf wqy-microhei.ttf

    Linux中文乱码之中文支持rpms

    在Linux系统中,中文字符的显示常常会遇到乱码的问题,这主要源于系统对中文编码的支持不足。"Linux中文乱码之中文支持rpms"这个主题聚焦于如何通过安装特定的RPM(Red Hat Package Manager)软件包来解决这个问题。...

    JFreechart 在linux下不显示及中文乱码问题

    6. **处理编码**:确保代码中涉及的文件和字符串都使用UTF-8编码,避免乱码。 7. **加载自定义字体**:在JFreechart中加载`zysong.ttf`字体,通过`Font.createFont()`方法将字体文件转换为Java可用的Font对象,然后...

    Linux 下 oracle dbca netca界面乱码

    以上步骤解决了Linux下Oracle的DBCA和NETCA工具在启动时出现的汉字乱码问题。通过安装合适的JDK版本并正确配置环境变量,以及修改DBCA和NETCA的启动参数,确保它们能够正确识别和显示中文字符。这对于在中文环境中...

    Linux中文乱码问题.pdf

    【Linux中文乱码问题详解】 在Linux环境中,中文乱码问题常常困扰着用户,尤其是在进行SSH连接、文件传输或跨平台...正确理解和应用这些知识,能帮助我们有效地处理各种乱码问题,确保在Linux环境中顺利进行中文操作。

    Linux系统文件乱码转码工具

    在Linux系统中,由于Windows和Linux之间对文本文件编码的不同处理,经常会出现文件在Linux环境下显示为乱码的情况。这主要是因为Windows系统普遍使用的是UTF-16或GBK编码,而Linux系统通常采用UTF-8编码。为了克服这...

    linux下查看windows txt乱码问题

    在处理跨平台文本文件时,经常会遇到字符编码不一致导致的乱码问题。尤其是在Linux系统中查看由Windows系统创建的txt文件时,由于两者默认采用的字符编码不同(Linux通常使用UTF-8,而Windows则多用GB2312或GBK),...

    Linux中文乱码问题文.pdf

    在Linux中,可以通过`locale -a`命令查看系统支持的所有locale,然后根据需要设置适当的环境变量,以避免在处理中文内容时出现乱码。同时,对于SSH连接,确保两端的SSH客户端和服务器都支持相同的字符编码,也可以...

    birt Chart在Linux下中文乱码解决方案

    在Linux环境下,BIRT(Business Intelligence and Reporting Tools)图表组件可能会遇到中文乱码的问题,这主要是由于Java虚拟机无法识别到支持中文字符的字体文件所导致。以下是一种解决该问题的详细步骤: 首先,...

    Linux Opencv在图像上写中文字符

    在Linux环境下,使用OpenCV库进行图像处理时,有时候我们需要在图像上添加文字,包括中文字符。OpenCV本身并不直接支持中文字符的显示,但我们可以借助其他库,如FreeType,来实现这一功能。本教程将详细介绍如何在...

    Json操作及中文乱码解决方案

    总之,处理JSON操作中的中文乱码问题,关键在于确保数据的编码和解码过程中使用了UTF-8。在前端,jQuery的`$.getJSON`已经做了很好的处理,而在后端,如Java中,Gson库也可以有效地管理中文字符。对于其他编程语言和...

Global site tag (gtag.js) - Google Analytics