원격 Red Hat 시스템에서 중국어 문자를 올바르게 표시하는 방법은 무엇입니까?

원격 Red Hat 시스템에서 중국어 문자를 올바르게 표시하는 방법은 무엇입니까?

저는 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) 다시 시작

관련 정보