欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

debian 中文字符+locale

程序员文章站 2022-03-05 08:17:35
...

debian 菱形 中文字符+locale

◆ 中文字符

$ dpkg-reconfigure locales

1、选择en_us uft-8
取消zh

2、选择en_us
http://www.bubuko.com/infodetail-1843766.html

◆ locale

  • 错误类型 :cannt set LC_CTYPE
$ locale
$ vim  /etc/profile
//加入一行:
$ export LC_ALL=C
//最后
$ source /etc/profile

  • 原因分析

问题的另一方面是,不是所有的现有程序都(很好)的支持unicode。很多应用程序,还是主要面向ASCII编码的。能够支持unicode编码的程序,为了提供向后兼容性,其中一些提供了一个启动参数、或配置参数,来启动对unicode的支持。如果没有应用这个特定的参数,程序将不支持unicode。

一些应用程序,特别是那些有较久历史的程序,默认配置通常是面向ASCII编码的,如GCC。这样的话,一些unicode编码的文本,就显示为乱码。如果你在LANG=en_US.utf8的Linux系统上使用过gcc4.2.4(3)及以上版本的话,你就肯定会有这方面的经历。GCC产生的编译错误和警告消息里,包含一堆乱码,有时候几乎可以让你无法阅读理解。

如果你想要一个支持unicode的工作环境,在Linux系统中,有标题所示的3个全局环境变量:LANG, LC_CTYPE, LC_ALL。通过设置这些环境变量,可以在系统范围中启动应用程序对unicode的支持(至少向所有应用程序表达了这个愿望)。但是,这里有一个糟糕的问题:如果系统中一些应用程序对unicode的支持并不全面(甚至不支持unicode,而只面向ASCII),那么通过设置这些环境变量,特别是LANG,就可能给这些程序带来一些干扰。

例如,如果将LANG=zh_CN.UTF-8,当你使用svn的时候,就可能有如下警告:
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LANG is zh_CN.UTF-8
svn: warning: please check that your locale name is correct
事实上,我们可以分别设置LANG, LC_CTYPE, LC_ALL,以求取得一个影响最小的解决方法,使得:1)能够启动应用程序对unicode的支持,如果他们真的支持的话;2)不干扰那些对unicode支持不全面的应用程序。

尽量不去改动LANG,而根据系统的具体配置,设置LC_CTYPE及LC_ALL。例如,将LC_ALL=C,而保留LANG=en_US.UTF-8,那么就能使GCC产生用户友好的编译错误及警告消息,又能与svn等相安无事。

参考:https://blog.csdn.net/QH_JAVA/article/details/51598871

相关标签: debian