Làm cách nào để hiển thị chính xác các ký tự tiếng Trung trên máy Red-Hat từ xa?


8

Tôi đang sử dụng Ubuntu14.04 để kết nối với máy chủ từ xa.

Phiên bản của nó là:

Phiên bản Linux 2.6.32-431.11.5.el6.yyyzzz.x86_64 (phiên bản gcc 4.4.7 20120313 (Mũ đỏ 4.4.7-4) (GCC)) # 1 SMP Thu ngày 3 tháng 7 09:42:34 CST 2014

Tệp tải lên của tôi trên máy đó sẽ không hiển thị chính xác các ký tự tiếng Trung. Và tôi mở một tập tin, gõ ngẫu nhiên ký tự tiếng Trung với Ubuntu ibus input method. Và nó cho thấy:

~R~V�~K~B~I~W个~I~N~T�饭~T~E

Tôi đã tìm kiếm trực tuyến và thử 2 phương pháp sau:

1: kiểm tra miền địa phương

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=

Có vẻ không có vấn đề gì.

2: cài đặt gói hỗ trợ tiếng Trung

Tôi đã làm:

yum install "@Chinese Support"

Nó đã cài đặt 178M tập tin trên máy đó.

Sau đó, tôi mở một tệp khác và thử gõ một số tiếng Trung bằng ibus. Nhưng vấn đề còn lại, làm thế nào để giải quyết nó?


update1 Tôi đã làm một số nghiên cứu thêm sau. Tôi thấy rằng một số ký tự có thể được gõ chính xác (thông qua phương thức nhập Bính âm, ibus). giống:

起 度 顿 客

Tất cả đều tương ứng với Bính âm của họ. Nhưng có một không gian được tạo tự động sau mỗi ký tự (không được tôi nhập).

Nếu tôi cố gắng gõ , 杜 , 盾 , (họ có cùng một từ bính âm như 4 ký tự Trung Quốc ở trên). Tôi đã nhận:

�~P�~]~\ ~[� ~H�

Đối với kinh nghiệm của tôi, nếu việc chuyển đổi mã hoàn toàn bị rối tung. Khi tôi nhập một Bính âm, tôi sẽ nhận được một số ký tự có dây trông giống tiếng Trung Quốc nhưng thực tế không phải vậy và chúng sẽ không bao giờ tương ứng với Bính âm mà tôi đã nhập.

Lần này, mọi thứ hơi khác một chút. Tôi có thể nhập một số ký tự chính xác (với một không gian do hệ thống tạo) và các ký tự khác không thể mã hóa được.

Câu trả lời:


5

Về cơ bản, điều này có thể là một vấn đề không phù hợp giữa địa phương của bạn, được thiết lập để UTF-8, và mã hóa tập tin nhân vật Chineses của bạn, có thể được mã hóa trong gbk, gb2312, gb18030, hoặc Big-5.

Tất cả những mã hóa được liệt kê ở trên là không tương thích với UTF-8.

Bây giờ, giả sử gbklà mã hóa tệp của bạn. Vì vậy, khi bạn cố gắng hiển thị nội dung của tệp, một gbktệp được mã hóa được hiểu là một UTF-8tệp, điều này gây ra sự vô nghĩa.

Đây là giải pháp.

  • Sử dụng luit. (Ưu tiên)

    $ whatis luit
    luit (1)             - Locale and ISO 2022 support for Unicode terminals
    

    luit -encoding gbk cat a_chinese_file.txt

Vì hầu hết (nếu không phải tất cả) mã hóa được sử dụng đều tương thích ASCIIvà nếu bạn chỉ cần các ký tự ASCIIvà mã hóa khác, bạn có thể sử dụng hai phương pháp sau.

  • Thay đổi mã hóa của thiết bị đầu cuối của bạn

    Bạn có thể xem xét nó vì phương pháp này không yêu cầu gói bổ sung được cài đặt.

  • Thay đổi ngôn ngữ của bạn

    Nhưng tôi nghĩ rằng điều này đòi hỏi bạn phải cài đặt miền địa phương tương ứng.


Một số chi tiết về mã hóa Trung Quốc đã đề cập ở trên.

  • gbk, gb2312, gb18030Là mã hóa cho Trung giản thể.

    Nếu bạn không chắc chắn mã hóa nào mà tệp của bạn đang sử dụng, hãy giả sử nó gb18030.

    Số ký tự chứa trong mỗi mã hóa sau này: gb18030> gbk> gb2312. Và mã hóa vượt trội là một siêu bộ của những gì tiếp theo.

  • Big-5 là mã hóa cho tiếng Trung Quốc truyền thống.

Hơn nữa, mã hóa cho tiếng Trung giản thể đôi khi được gọi là CP936(Mã trang 936, tôi nghĩ tên này xuất phát từ Windows).


Về vấn đề thiết bị đầu cuối, tôi có thể hiển thị chính xác các ký tự tiếng Trung trên thiết bị đầu cuối như thể tệp nằm trong máy tính cục bộ của tôi, nhưng khi đưa nó vào máy từ xa, các ký tự trở nên không thể nhận ra.
Zen

Nhân tiện, khi thực hiện lệnh luit, tôi nhận được "Cảnh báo: không thể đặt ngôn ngữ. Lỗi phân đoạn"
Zen

@Zen Có quá nhiều vấn đề để xử lý các tệp không được mã hóa UTF-8. Và đề nghị của tôi là chuyển đổi tệp ký tự tiếng Trung của bạn được mã hóa UTF-8nếu bạn có quyền kiểm soát đó. Sau đó mọi thứ sẽ ổn thôi.
pallxk

bạn có nghĩa là luit có thể chuyển đổi nó?
Zen

luitkhông thể. Sử dụng một số công cụ khác. Tôi không chắc chắn công cụ nào đó để sử dụng trên linux. Trên Windows, bạn có thể sử dụng Notepad++.
pallxk


-1

Tôi nghĩ bạn cần thay đổi hai tập tin như

1 trong /etc/default/locale

LANG=" en_US.UTF-8"
LANGUAGE=" en_US:en.UTF-8"

2 trong ~/.pam_environment

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8

3) khởi động lại

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.