Рендеринг китайских / UTF8 символов в MySQL Select с использованием PuTTY и клиента командной строки - PullRequest
1 голос
/ 06 ноября 2011

Есть ли какой-нибудь хороший и простой способ подключиться к базе данных MySQL с помощью обычного клиента командной строки MySQL при подключении с помощью PuTTY и заставить его правильно отображать поля UTF8, содержащие не западные символы?

В моих таблицах используется кодировка UTF8, и при обычном использовании значения поступают из приложения Android и отображаются приложением Android. Проблема в том, что иногда дела обстоят неправильно, и когда они это делают, я почти не могу понять, что происходит, потому что клиент командной строки MySQL принудительно преобразует значения UTF8 в (то, что кажется) ISO-8859-1 (то есть квази - случайная тарабарщина при показе на экране). Для чего бы это ни стоило, Toad for MySQL (как бесплатный, так и бета), похоже, манипулирует выходом UTF8 одинаково.

На полусвязанной ноте мой любимый моноширинный шрифт - Andale Mono (да, мне действительно нравятся неоднозначные символы 0 / O и 1 / l). Я почти уверен, что в нем нет символов CJK. Существует ли какая-либо (бесплатная) утилита, которая может использоваться для копирования младших 127 или 256 символов из одного шрифта Truetype (например, Andale Mono) и создания нового шрифта Truetype на основе некоторого шрифта UTF8 CJK Truetype, который заменяет младшие 127 или 256 символов с данными шрифта, извлеченными из Andale Mono?

1 Ответ

3 голосов
/ 06 ноября 2011

Сначала вы должны убедиться, что кодировка вашей консоли установлена ​​на UTF-8.Используя PuTTY, вы должны установить раскрывающийся список кодировок в «Окно»> «Перевод» на UTF-8

Второй MySQL различает кодировку данных и кодировку соединения.Если ваши данные имеют кодировку UTF-8, но для вашей кодировки соединения установлено, например, «ISO-8859-1», MySQL автоматически преобразует выходные данные.

Самый простой способ постоянной установки кодировок - обновить клиент.cnf со следующим:

[client]
default-character-set=utf8

Подробную информацию о кодировке соединений вы можете найти здесь: http://dev.mysql.com/doc/refman/5.5/en/charset-connection.html

При использовании функций MySQL API (например, PHP-клиента) вы можете установитьсоединение charset путем отправки запроса

SET NAMES utf8

Различные реализации MySQL API также поддерживают настройку charset напрямую.например, http://www.php.net/manual/en/mysqli.set-charset.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...