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

JSP кодиране при вмъкване на неанглийски текст в MySQL база данни

Това ще се случи само когато и двете страни са напълно наясно с разликите в кодирането на знаци във всяка страна. Всеки знак, който не е покрит от кодирането на знаци, използвано от другата страна, ще бъде заменен с въпросителен знак ? . В противен случай щяхте да видите Mojibake .

В този конкретен случай тези страни са страната на Java и страната на базата данни, като JDBC драйверът е посредник. За да коригирате това, трябва да кажете на драйвера на JDBC в какво кодиране са тези знаци. Можете да направите това, като зададете useUnicode=true&characterEncoding=UTF-8 параметри в URL адреса на JDBC връзката.

jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8

След това, в зависимост от това как изпращате параметрите от клиента към сървъра, вероятно ще трябва да коригирате кодирането на заявката. Предвид факта, че виждате Mojibake, когато премахнете request.setCharacterEncoding("UTF-8") , използвате POST. Така че тази част е наред.

В случай, че ако използвате GET за изпращане на параметрите, ще трябва да конфигурирате URI кодиране от страна на сървъра. Не е ясно какъв сървър използвате, но в случай на Tomcat например е въпрос на редактиране на <Connector> запис в /conf/server.xml както следва:

<Connector ... URIEncoding="UTF-8">

Вижте също:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Откриване на грешка при актуализиране/вмъкване на mysql поради нарушено уникално ограничение

  2. Копирането на директорията /var/lib/mysql добра ли е алтернатива на mysqldump?

  3. Как да ПОРЪЧАТЕ ПО SUM() в MySQL?

  4. Стартирайте MySQL Server като услуга (Win 8)

  5. Импортирането на MySQL 5.7.12 не може да създаде JSON стойност от низ със CHARACTER SET 'binary'