Câu hỏi Terminal Show Multiple Languages


Tại nơi làm việc, tôi cần kết nối với cơ sở dữ liệu và các cơ sở dữ liệu này chứa các trường chứa các ký tự Trung Quốc, Nga, Tây Ban Nha, Nhật Bản, v.v. Khi kéo chúng lên trong nhà ga của tôi, tôi nhận được dấu hỏi. Tôi biết có một cách để hiển thị các ký tự thực tế thay vì dấu hỏi, nhưng làm thế nào?

:~$ locale trên các kết quả từ xa trong:

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=

:~$ locale trên các kết quả clint trong:

LANG=en_US.UTF-8
LANGUAGE=
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=

4
2018-01-03 18:57


gốc




Các câu trả lời:


Kiểm tra locale để đảm bảo phía máy chủ đang sử dụng UTF-8 hoặc thay đổi ngôn ngữ đến UTF-8. Sau đó, cấu hình máy khách SSH của bạn để sử dụng UTF-8 (không phải ISO-8859-1). Ví dụ, nếu sử dụng Putty, chúng ta phải đặt bộ ký tự của Putty:

Putty: Window-> Translation-> Remote character set: UTF-8

enter image description here

Nếu không, nó sẽ sử dụng ISO-8859-1. A Đã khắc phục sự cố máy Mac.

Ngoài ra, chạy lệnh này trong khi kết nối với cơ sở dữ liệu mysql sẽ xuất ra các ký tự UTF-8 từ các truy vấn mysql.

set character_set_results=utf8, character_set_client=utf8, character_set_connection=utf8;

4
2018-01-03 19:04



Vì vậy, nó đang sử dụng UTF-8, và điều đó không hoạt động. vì vậy tôi chạy những thứ này: sudo cp /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/local  sudo locale-gen và điều đó cũng không hiệu quả. - Get Off My Lawn
@RyanNaddy Chỉ cần gõ locale. Nếu trả lại rằng nó đang sử dụng UTF-8, tốt! Bây giờ phía máy khách phải được cấu hình để sử dụng UTF-8. Nhiều người không làm điều này mà không có cấu hình rõ ràng. Khách hàng của bạn là gì?
Cả hai đều là UTF-8. Vui lòng xem câu hỏi được cập nhật. - Get Off My Lawn
Nó không quan trọng là hệ thống khách hàng đang sử dụng UTF-8 với locale chỉ huy. Bản thân SSH client có thể cần phải biết SỬ DỤNG UTF-8. (Hầu hết cần điều này.) Ngoài ra: tại dấu nhắc MySQL: mysql> set character_set_results = utf8, character_set_client = utf8, character_set_connection = utf8;
lệnh này đã sửa nó: set character_set_results=utf8, character_set_client=utf8, character_set_connection=utf8; - Get Off My Lawn