Mysql
 sql >> база данни >  >> RDS >> Mysql

Показване на японски знаци от SQLException.getMessage()

ラケシュ12345

Правилно?

Вероятно какво се е случило, когато INSERTing беше

  • Имахте правилно utf8 кодиране за данните и
  • ЗАДАВАНЕ НА ИМЕНА latin1 -- по подразбиране или по погрешка, и
  • Колоната (или таблицата), в която е съхранен текстът, е декларирана с CHARACTER SET latin1 , отново възможно по подразбиране.

Можете да проверите дали данните се съхраняват правилно, като направите

SELECT col, HEX(col) ...

Ако извлечете този низ, шестнадесетичният ще бъде E383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95 . Забележете как има групи от 6 шестнадесетични, започващи E383 в случай на катакана или EFBC за "цифрите с пълна ширина".

Ако приемем, че таблицата все още казва latin1, не се губят данни и 2-стъпков ALTER ще го оправи. Накратко:

ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;

където дължините са достатъчно големи и другият "..." има каквото и да е друго (НЕ NULL и т.н.) вече е в колоната.

(Доскоро не можех да дам този ясен и пълен отговор на този въпрос.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php пул за връзка mysql

  2. Как да конвертирате csv формат на дата в mysql db

  3. Кое е следващото най-добро нещо след VARCHAR(255)

  4. 2 начина за конвертиране на число в осмично в MySQL

  5. Разделете MYSQL резултатите в отделни HTML таблици