Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Kodowanie JSP podczas wstawiania tekstu w języku innym niż angielski do bazy danych MySQL

Stanie się tak tylko wtedy, gdy obie strony będą doskonale świadome różnic w kodowaniu znaków po każdej ze stron. Każdy znak, który nie jest objęty kodowaniem znaków używanym po drugiej stronie, zostanie zastąpiony znakiem zapytania ? . W przeciwnym razie zobaczyłbyś Mojibake .

W tym konkretnym przypadku tymi stronami są strona Java i strona bazy danych, ze sterownikiem JDBC jako mediatorem. Aby to naprawić, musisz powiedzieć sterownikowi JDBC, w jakim kodowaniu są te znaki. Możesz to zrobić, ustawiając useUnicode=true&characterEncoding=UTF-8 parametry w adresie URL połączenia JDBC.

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

Następnie, w zależności od tego, w jaki sposób przesyłasz parametry z klienta do serwera, prawdopodobnie musisz również poprawić kodowanie żądania. Biorąc pod uwagę fakt, że widzisz Mojibake po usunięciu request.setCharacterEncoding("UTF-8") , używasz POST. Więc ta część jest w porządku.

W przypadku, gdy używasz GET do wysyłania parametrów, musisz skonfigurować kodowanie URI po stronie serwera. Nie wiadomo, z jakiego serwera korzystasz, ale w przypadku np. Tomcata jest to kwestia edycji <Connector> wpis w /conf/server.xml w następujący sposób:

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

Zobacz też:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można przekazać parametru 2 przez odwołanie - uuid PDO

  2. Czy możesz użyć automatycznego przyrostu w MySql, jeśli nie jest to klucz podstawowy?

  3. Zapisz dane w języku arabskim w bazie danych MySQL

  4. Używanie przygotowanych instrukcji w C# z Mysql

  5. php- pobierz ostatni identyfikator wstawiania