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, поскольку драйвер не
будет обнаруживать, что набор символов изменился, и будет продолжать использовать набор символов,
обнаруженный во время начальной установки соединения.