|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Все строки, отправленные от драйвера JDBC до сервера, преобразовываются автоматически от собственной формы
Unicode Java до клиентской кодировки символов, включая все запросы, отправленные, используя Statement.execute(), Statement.executeUpdate(),
Statement.executeQuery() так же как все PreparedStatement
и CallableStatement параметры с исключением использования набора параметров
setBytes(), setBinaryStream(), setAsciiStream(), setUnicodeStream() и setBlob().
В MySQL Server 4.1 и выше, Connector/J поддерживает единственную кодировку символов между клиентом и сервером, и
любым числом кодировок символов для данных, возвращенных сервером клиенту в ResultSets.
До MySQL Server 4.1, Connector/J, поддерживаемый единственная кодировка символов для каждого подключения,
которая могла или быть автоматически обнаружена от конфигурации сервера, или могла быть сконфигурирована
пользователем через useUnicode и characterEncoding
свойства.
Кодировка символов между клиентом и сервером автоматически обнаруживается на соединение. Вы определяете
кодирование на сервере, используя character_set_server для версий сервера 4.1.0 и более новый, и character_set системная переменная для версий сервера, более старых чем 4.1.0.
Драйвер автоматически использует кодирование, определенное сервером. Для получения дополнительной информации см.
Раздел
10.1.3.1, "Набор символов сервера и Сопоставление".
Например, чтобы использовать 4-байтовые наборы символов UTF-8 с Connector/J, сконфигурируйте сервер MySQL с character_set_server=utf8mb4,
и отпуск characterEncoding из строки подключения Connector/J. Connector/J тогда
автоматически обнаружит установку UTF-8.
Чтобы переопределить автоматически обнаруженное кодирование на стороне клиента, используйте characterEncoding свойство в URL, используемом, чтобы соединиться с
сервером.
Чтобы позволить многократным наборам символов быть отправленными от клиента, используйте кодирование UTF-8,
любого, конфигурируя utf8 как набор символов сервера значения по умолчанию, или
конфигурируя драйвер JDBC, чтобы использовать UTF-8 через characterEncoding
свойство.
Определяя кодировки символов на стороне клиента, используйте имена стиля Java. Следующая таблица приводит имена набора символов MySQL и соответствующие имена стиля Java:
Таблица 21.26. MySQL к Java, Кодирующему Преобразования Имени
| MySQL Character Set Name | Имя Кодировки символов стиля Java |
|---|---|
ascii |
US-ASCII |
big5 |
Big5 |
gbk |
GBK |
sjis |
SJIS (or Cp932 or MS932 for MySQL Server < 4.1.11) |
cp932 |
Cp932 or MS932 (MySQL Server > 4.1.11) |
gb2312 |
EUC_CN |
ujis |
EUC_JP |
euckr |
EUC_KR |
latin1 |
Cp1252 |
latin2 |
ISO8859_2 |
greek |
ISO8859_7 |
hebrew |
ISO8859_8 |
cp866 |
Cp866 |
tis620 |
TIS620 |
cp1250 |
Cp1250 |
cp1251 |
Cp1251 |
cp1257 |
Cp1257 |
macroman |
MacRoman |
macce |
MacCentralEurope |
utf8 |
UTF-8 |
ucs2 |
UnicodeBig |
Не выпускайте запрос set names с Connector/J, поскольку драйвер не
будет обнаруживать, что набор символов изменился, и будет продолжать использовать набор символов,
обнаруженный во время начальной установки соединения.