Установите NLS_LANG - PullRequest
       31

Установите NLS_LANG

0 голосов
/ 03 апреля 2019

У нас есть база данных с AL32UTF8 в качестве набора символов.Наше приложение поддерживает языки EN, FR, DE и JP.В каждом выпуске мы вставляем новые метки в таблицу, управляющую переводами.каким должен быть NLS_LANG клиента, чтобы гарантировать, что французские специальные символы и японский язык правильно вставлены в базу данных?

Обратите внимание, что у каждого клиента есть своя собственная база данных.Есть ли автоматический способ убедиться, что используемый NLS_LANG является хорошим?Я уже прочитал эту статью , но я не знаю, как мне этого добиться.Спасибо, Bilel

1 Ответ

2 голосов
/ 03 апреля 2019

Если вам приходится иметь дело с японским и европейским языками, тогда AL32UTF8 (т. Е. UTF-8) - фактически единственная полезная опция.

В связанной статье есть некоторые недостатки, например " ... в операционной системе Windows, поэтому вам не следует устанавливать AL32UTF8 в качестве клиентского набора символов в параметре NLS_LANG, поскольку в нем нет клиентов UTF-8 WIN32 ."Это неправильно, в настоящее время почти каждый клиент Windows поддерживает UTF-8. Каждый текстовый редактор, который вы используете для записи файлов *sql, поддерживает UTF-8, когда вы используете простой sql * Plus, тогда простая команда chcp 65001 делает его UTF-8. Только устаревшие и устаревшие драйверы от Microsoft не поддерживают Unicode.

Обратите внимание: когда вы устанавливаете, например, значение NLS_LANG=.AL32UTF8, вы говорите базе данных Oracle: «В моем клиентском приложении используется набор символов AL32UTF8 (a.k.a. UTF-8)» - не больше, не меньше.

Это не означает автоматически, что ваше клиентское приложение действительно использует UTF-8, часто вам приходится явно указывать его в некоторых настройках (однако есть приложения и драйверы, которые автоматически следуют значению NLS_LANG).

См. OdbcConnection, возвращающий китайские иероглифы как "?" для получения дополнительной информации.

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