A Tomcat UTF-8 készen áll

1. Bemutatkozás

Az UTF-8 a webes alkalmazásokban használt leggyakoribb karakterkódolás. Támogatja a világon jelenleg beszélt összes nyelvet, beleértve a kínai, koreai és japán nyelvet.

Ebben a cikkben bemutatjuk az UTF-8 biztosításához szükséges összes konfigurációt a Tomcat-ban.

2. Csatlakozó konfigurálása

A csatlakozó egy adott porton figyeli a kapcsolatokat. Biztosítanunk kell ezt minden csatlakozónk az UTF-8-at használja a kérések kódolásához.

Adjuk hozzá a paramétert URIEncoding = "UTF-8" az összes csatlakozóhoz TOMCAT_ROOT / conf / server.xml:

3. Karakterkészlet szűrő

A csatlakozó konfigurálása után ideje kényszeríteni a webalkalmazást az UTF-8 összes kérésének és válaszának kezelésére.

Definiáljunk egy nevű osztályt CharacterSetFilter:

public class CharacterSetFilter implementálja a Filter {// ... public void doFilter (ServletRequest kérés, ServletResponse válasz, FilterChain következő) dobja az IOException, ServletException {request.setCharacterEncoding ("UTF-8"); response.setContentType ("szöveg / html; karakterkészlet = UTF-8"); response.setCharacterEncoding ("UTF-8"); next.doFilter (kérés, válasz); } // ...} 

Hozzá kell adnunk a szűrőt az alkalmazásunkhoz web.xml hogy minden kérésre és válaszra alkalmazzák:

 CharacterSetFilter com.baeldung.CharacterSetFilter CharacterSetFilter / * 

4. Kiszolgálói oldal kódolása

Webes alkalmazásunk másik része, amelyet konfigurálnunk kell, a Java szerver oldalak.

A Az UTF-8 kiszolgálói oldalak biztosításának legjobb módja, ha ezt a címkét hozzáadja az egyes JSP oldalak tetejéhez:

5. HTML oldal kódolása

Míg a szerver oldalak kódolása megmondja a JVM-nek, hogyan kell kezelni az oldal karaktereket, a HTML oldal kódolás megmondja a böngészőnek, hogyan kell kezelni az oldal karaktereit.

Ezt hozzá kell tennünk címke a fej szakasz az összes HTML oldalról:

6. MySQL kiszolgáló konfigurálása

Most, hogy a Tomcat konfigurálva van, itt az ideje az adatbázis konfigurálásának.

Feltételezzük, hogy MySQL szervert használnak. A konfigurációs fájl neve my.ini Windows rendszeren és my.cnf Linux alatt.

Meg kell találnunk a konfigurációs fájlt, meg kell keresnünk ezeket a paramétereket, és ennek megfelelően kell szerkesztenünk őket:

[kliens] alapértelmezett karakterkészlet = utf8mb4 [mysql] alapértelmezett karakterkészlet = utf8mb4 [mysqld] karakterkészlet-kliens-kézfogás = HAMIS karakterkészlet-kiszolgáló = utf8mb4 leválogatás-kiszolgáló = utf8mb4_unicode_ci

A változások életbe léptetéséhez újra kell indítanunk a MySQL szervert.

7. MySQL adatbázis konfiguráció

A MySQL szerver karakterkészlet konfigurációját csak új adatbázisokra alkalmazzák. A régieket kézzel kell migrálnunk. Ez könnyen elérhető néhány parancs használatával.

Minden adatbázis esetében:

ALTER DATABASE adatbázis_név JELLEMZŐKÉSZLET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

Minden táblázathoz:

ALTER TABLE table_name ÁTALAKÍTÁS JELLEMZŐKÉSZLETRE utf8mb4 COLLATE utf8mb4_unicode_ci;

Az egyes VARCHAR vagy SZÖVEG oszlop:

ALTER TABLE table_name CHANGE oszlop_név oszlop_név VARCHAR (69) JELLEGZETKÉSZLET utf8mb4 COLLATE utf8mb4_unicode_ci;

Ha az adatokat UTF-8 karakterekkel továbbítjuk adatbázis-lekérdezésekben, akkor biztosítanunk kell, hogy minden létrehozott adatbázis-kapcsolat megfeleljen az UTF-8 kódolásának.

JDBC alapú kapcsolat esetén ez a következő kapcsolat URL-lel érhető el:

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

8. Következtetés

Ebben a cikkben bemutattuk, hogyan lehet biztosítani, hogy a Tomcat használja az UTF-8 kódolást.