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.