Izrada Tomcat UTF-8-Ready

1. Uvod

UTF-8 najčešće je kodiranje znakova koje se koristi u web aplikacijama. Podržava sve jezike koji se trenutno govore u svijetu, uključujući kineski, korejski i japanski.

U ovom članku prikazujemo svu konfiguraciju potrebnu za osiguravanje UTF-8 u programu Tomcat.

2. Konfiguracija konektora

Konektor osluškuje veze na određenom portu. Moramo se pobrinuti za to svi naši priključci koriste UTF-8 za kodiranje zahtjeva.

Dodajmo parametar URIEncoding = "UTF-8" na sve priključke u TOMCAT_ROOT / conf / server.xml:

3. Filtar za skup znakova

Nakon konfiguriranja konektora, vrijeme je da prisilite web aplikaciju da obrađuje sve zahtjeve i odgovore u UTF-8.

Definirajmo razred s imenom CharacterSetFilter:

javna klasa CharacterSetFilter provodi Filter {// ... javna void doFilter (zahtjev ServletRequest, odgovor ServletResponse, FilterChain sljedeći) baca IOException, ServletException {request.setCharacterEncoding ("UTF-8"); response.setContentType ("text / html; charset = UTF-8"); response.setCharacterEncoding ("UTF-8"); next.doFilter (zahtjev, odgovor); } // ...} 

Moramo dodati filtar našoj aplikaciji web.xml tako da se primjenjuje na sve zahtjeve i odgovore:

 CharacterSetFilter com.baeldung.CharacterSetFilter CharacterSetFilter / * 

4. Kodiranje stranice poslužitelja

Drugi dio naše web aplikacije koji moramo konfigurirati su stranice Java poslužitelja.

The najbolji način da osigurate UTF-8 na stranicama poslužitelja je dodavanje ove oznake na vrh svake JSP stranice:

5. HTML kodiranje stranica

Dok kodiranje stranice poslužitelja govori JVM-u kako se rukuje znakovima stranice, HTML kodiranje stranica govori pregledniku kako postupati sa znakovima stranice.

Trebali bismo dodati ovo oznaka u glava odjeljak svih HTML stranica:

6. Konfiguracija MySQL poslužitelja

Sada, kada je naš Tomcat konfiguriran, vrijeme je za konfiguriranje baze podataka.

Pretpostavljamo da se koristi MySQL poslužitelj. Datoteka za konfiguraciju je imenovana moj.ini na Windowsima i moj.cnf na Linuxu.

Moramo pronaći konfiguracijsku datoteku, potražiti ove parametre i urediti ih u skladu s tim:

[klijent] zadani-skup znakova = utf8mb4 [mysql] zadani-skup znakova = utf8mb4 [mysqld] skup znakova-klijent-rukovanje = NETOČNI skup znakova-poslužitelj = utf8mb4 poslužitelj kolacije = utf8mb4_unicode_ci

Moramo ponovno pokrenuti MySQL poslužitelj da bi promjene stupile na snagu.

7. Konfiguracija baze podataka MySQL

Konfiguracija skupa znakova MySQL poslužitelja primjenjuje se samo na nove baze podataka. Stare moramo migrirati ručno. To se lako može postići pomoću nekoliko naredbi.

Za svaku bazu podataka:

ALTER BAZE BAZE PODATAKA ime baze podataka KARAKTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

Za svaku tablicu:

ALTER TABLE ime_tabele PRETVORI U POSTAVLJANJE KARAKTERA utf8mb4 COLLATE utf8mb4_unicode_ci;

Za svakoga VARCHAR ili TEKST stupac:

ALTER TABLE ime_tablice PROMIJENI ime_stupca ime_ stupca VARCHAR (69) POSTAVLJANJE KARAKTERA utf8mb4 COLLATE utf8mb4_unicode_ci;

Ako u upitima baze podataka prosljeđujemo podatke s UTF-8 znakovima, moramo osigurati da je svaka uspostavljena veza s bazom podataka u skladu s UTF-8 kodiranjem.

Za vezu temeljenu na JDBC to se može postići sljedećim URL-om veze:

jdbc: mysql: // localhost: 3306 /? useUnicode = yes; characterEncoding = UTF-8

8. Zaključak

U ovom smo članku pokazali kako osigurati da Tomcat koristi UTF-8 kodiranje.


$config[zx-auto] not found$config[zx-overlay] not found