저는 Ubuntu14.04를 사용하여 원격 호스트에 연결하고 있습니다.
버전은 다음과 같습니다:
Linux 버전 2.6.32-431.11.5.el6.yyyzzz.x86_64(gcc 버전 4.4.7 20120313(Red Hat 4.4.7-4)(GCC)) #1 SMP Thu Jul 3 09:42:34 CST 2014
이 컴퓨터에 업로드한 파일이 중국어 문자를 올바르게 표시하지 않았습니다. 파일을 열고 Ubuntu를 사용하여 임의의 한자를 입력했습니다 ibus input method
. 이것은 보여준다:
~R~V�~K~B~I~W个~I~N~T�饭~T~E
온라인으로 검색하여 다음 2가지 방법을 시도했습니다.
1: 지역 설정 확인
It shows:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
문제 없을 것 같습니다.
2: 중국어 지원 패키지 설치
나는 그랬다:
yum install "@Chinese Support"
해당 컴퓨터에 1억 7,800만 개의 파일을 설치했습니다.
그 후 다른 파일을 열어서 ibus를 이용해서 중국어를 좀 입력해 보았습니다. 하지만 문제는 여전히 존재합니다. 어떻게 해결해야 할까요?
업데이트 1 그런 다음 좀 더 조사를 했습니다. 일부 문자를 올바르게 입력할 수 있는 것을 발견했습니다(병음 입력 방법, ibus를 통해). 좋다:
起 度 顿 客
그들은 모두 병음에 해당합니다. 하지만 각 문자 뒤에는 자동으로 생성된 공백이 있습니다(제가 입력한 것이 아닙니다).
Qi, Du, Dun, Ke(위의 4개 한자와 병음이 동일함)를 입력하려고 하면. 나는 가지고있다:
�~P�~]~\ ~[� ~H�
내 경험상 코드 변환이 완전히 혼란스러운 경우. 병음을 입력하면 중국어처럼 보이지만 실제로는 중국어가 아닌 하이픈 문자가 표시되며 이 문자는 내가 입력하는 병음과 전혀 일치하지 않습니다.
이번에는 상황이 조금 다릅니다. 일부 문자는 올바르게(시스템 생성 공백 포함) 입력할 수 있지만 다른 문자는 읽을 수 없습니다.
답변1
기본적으로 로케일( 로 설정됨 UTF-8
)과 중국어 문자 파일의 인코딩( gbk
, gb2312
, 또는 일 수 있음) gb18030
이 일치 하지 않을 수 있습니다 Big-5
.
위에 나열된 모든 인코딩은호환되지 않는그리고 UTF-8
.
이제 gbk
파일 인코딩이라고 가정해 보겠습니다. 따라서 파일의 내용을 표시하려고 하면 gbk
인코딩된 파일이 UTF-8
파일로 해석되어 횡설수설이 발생합니다.
해결책이 다가오고 있습니다.
사용
luit
. (우선의)$ whatis luit luit (1) - Locale and ISO 2022 support for Unicode terminals
luit -encoding gbk cat a_chinese_file.txt
전부는 아니더라도 대부분 사용 중인 인코딩이 호환되므로 다른 인코딩의 문자 ASCII
만 필요한 경우 다음 두 가지 방법을 사용할 수 있습니다.ASCII
터미널 인코딩 변경
이 접근 방식에서는 추가 패키지를 설치할 필요가 없으므로 이를 고려할 수 있습니다.
로케일 변경
하지만 이를 위해서는 해당 로케일을 설치해야 한다고 생각합니다.
위에서 언급한 중국어 인코딩에 대한 일부 세부 정보입니다.
gbk
,gb2312
,gb18030
는 중국어 간체 코드입니다.파일이 어떤 인코딩을 사용하는지 확실하지 않은 경우에는
gb18030
.각 인코딩에 포함된 문자 수는 다음과 같습니다.
gb18030
>>gbk
.gb2312
고급 코딩은 다음의 상위 집합입니다.Big-5
중국어 번체의 인코딩입니다.
게다가 중국어 간체 인코딩을 호출하는 경우도 있습니다 CP936
(코드 페이지 936, Windows에서 따온 이름인 것 같습니다).
답변2
방금 다음 줄을 추가했습니다 ~/.bash_profile
.
export LC_ALL=en_US.UTF-8
답변3
파일 두 개를 변경해야 할 것 같아요
1) 안으로/etc/default/locale
LANG=" en_US.UTF-8"
LANGUAGE=" en_US:en.UTF-8"
2) 안으로~/.pam_environment
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
3) 다시 시작