Вкладыш китайской базы данных Oracle искажен

A.

Запрос кодировки базы данных

выберите Userenv ( « язык » ) из двойного;

Кодировка сервера запросов

выберите * от v $ nls_parameters;

Запущенный кодирование системы SQL запросов

корень @ f096e625bcd3: / # локали
ЛАНГ = 
ЯЗЫК = 
LC_CTYPE = " POSIX " 
LC_NUMERIC = " POSIX " 
LC_TIME = " POSIX " 
LC_COLLATE = " POSIX " 
LC_MONETARY = " POSIX " 
LC_MESSAGES = " POSIX " 
LC_PAPER = " POSIX " 
lc_name = " POSIX " 
LC_ADDRESS = " POSIX "
LC_TELEPHONE =" POSIX " 
LC_MEASUREMENT = " POSIX " 
LC_IDENTIFICATION = " POSIX " 
LC_ALL =

Вы можете увидеть текущий формат кодирования в стандарте POSIX, и этот формат кодирования не поддерживает китайский язык

  Решение : локаль -a Проверьте контейнер для всех языков

  

Используйте локаль -a просмотра имеющихся в настоящее время набор символов, здесь мы видим C.UTF-8 и zn_CN.UTF-8, эти два опорных китайские наборы символов. Если в настоящее время нет zn_CN.UTF-8, можно использовать Sudo APT-получить -y установить установку языка пак-ZH-HANS.

Sudo apt - прибудет -y установки языка вьючных ZH-Ганса

 

 C.UTF-8 может поддерживать китайский, просто необходимо, чтобы закодировать контейнер может C.UTF-8

    1. Временное изменение:

     экспорт LANG = zh_CN.UTF-8

корень @ f096e625bcd3: / # экспорт LANG = zh_CN.UTF- 8 
корень @ f096e625bcd3: / # локали
ЛАНГ = zh_CN.UTF- 8 
ЯЗЫК = 
LC_CTYPE = " zh_CN.UTF-8 " 
LC_NUMERIC = " zh_CN.UTF-8 " 
LC_TIME = " zh_CN.UTF-8 " 
LC_COLLATE = " zh_CN.UTF-8 " 
LC_MONETARY = " zh_CN. UTF-8 " 
LC_MESSAGES = " zh_CN.UTF-8 " 
LC_PAPER = " zh_CN.UTF-8 " 
lc_name = " zh_CN.UTF-8 "
LC_ADDRESS = "zh_CN.UTF-8 " 
LC_TELEPHONE = " zh_CN.UTF-8 " 
LC_MEASUREMENT = " zh_CN.UTF-8 " 
LC_IDENTIFICATION = " zh_CN.UTF-8 " 
LC_ALL =

    2. Постоянное изменение: Изменить Dockerfile

      Добавьте строку в Dockerfile

      ENV ЛАНГ C.UTF-8

      Воссоздание Docker зеркала, Docker запустить -ti [Зеркало] выполняется после ввода контейнера локалите найти формат кодирование был изменен C.UTF-8, до появления китайского названия файла искаженных проблем нет.

  III. Изменить кодировку оракула

1. Просмотрите текущую кодировку базы данных

выберите Userenv ( « язык » ) из двойного;
SQL> выберите Userenv ( ' язык ' ) из двойного;

USERENV ( ' LANGUAGE ' )
 -------------------------------------------- -------- 
AMERICAN_AMERICA.AL32UTF8

2. Проверьте систему NLS_LANG

Эхо $ NLS_LANG

Установка NLS_LANG

экспорт NLS_LANG = AMERICAN_AMERICA.AL32UTF8

успех

рекомендация

отwww.cnblogs.com/jiangfeilong/p/10926609.html
рекомендация