הפיכת Tomcat UTF-8 מוכנה

1. הקדמה

UTF-8 הוא קידוד התווים הנפוץ ביותר המשמש ביישומי אינטרנט. הוא תומך בכל השפות המדוברות כיום בעולם כולל סינית, קוריאנית ויפנית.

במאמר זה אנו מדגימים את כל התצורה הדרושה להבטחת UTF-8 ב- Tomcat.

2. תצורת מחבר

מחבר מקשיב חיבורים ביציאה ספציפית. עלינו לוודא זאת כל המחברים שלנו משתמשים ב- UTF-8 כדי לקודד בקשות.

בואו נוסיף את הפרמטר URIEncoding = ”UTF-8 ″ לכל המחברים ב TOMCAT_ROOT / conf / server.xml:

3. מסנן ערכות תווים

לאחר הגדרת התצורה של המחבר, הגיע הזמן לאלץ את יישום האינטרנט לטפל בכל הבקשות והתגובות ב- UTF-8.

בואו נגדיר מחלקה בשם CharacterSetFilter:

מחלקה ציבורית CharacterSetFilter מיישמת את המסנן {// ... public void doFilter (ServletRequest request, ServletResponse response, FilterChain next) זורק IOException, ServletException {request.setCharacterEncoding ("UTF-8"); response.setContentType ("text / html; charset = UTF-8"); response.setCharacterEncoding ("UTF-8"); next.doFilter (בקשה, תגובה); } // ...} 

עלינו להוסיף את המסנן ליישומים שלנו web.xml כך שהוא מוחל על כל הבקשות והתגובות:

 CharacterSetFilter com.baeldung.CharacterSetFilter CharacterSetFilter / * 

4. קידוד עמוד שרת

החלק האחר של יישום האינטרנט שלנו שעלינו להגדיר הוא דפי שרת Java.

ה הדרך הטובה ביותר להבטיח UTF-8 בדפי השרת היא להוסיף תג זה בראש כל עמוד JSP:

5. קידוד עמוד HTML

בעוד שקידוד עמודי השרת אומר ל- JVM כיצד לטפל בתווי העמוד, קידוד עמודי HTML אומר לדפדפן כיצד לטפל בתווי העמוד.

עלינו להוסיף זאת התג ב- רֹאשׁ קטע מכל דפי ה- HTML:

6. תצורת שרת MySQL

עכשיו, כשה Tomcat שלנו מוגדר, הגיע הזמן להגדיר את מסד הנתונים.

אנו מניחים כי נעשה שימוש בשרת MySQL. שם קובץ התצורה my.ini ב- Windows ו- my.cnf ב- Linux.

עלינו למצוא את קובץ התצורה, לחפש פרמטרים אלה ולערוך אותם בהתאם:

[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] set-client-hand-hand = FALSE-set-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci

עלינו להפעיל מחדש את שרת MySQL כדי שהשינויים ייכנסו לתוקף.

7. תצורת מסד הנתונים של MySQL

תצורת ערכת התווים של שרת MySQL מוחלת רק על מסדי נתונים חדשים. עלינו להעביר את הישנים באופן ידני. ניתן להשיג זאת בקלות באמצעות כמה פקודות.

לכל מסד נתונים:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

לכל שולחן:

שנה טבלה שם_מרה להמרת ערכת תווים utf8mb4 COLLATE utf8mb4_unicode_ci;

לכל אחד VARCHAR אוֹ טֶקסט טור:

ALTER TABLE טבלה שם התחל שם עמודה שם עמודה VARCHAR (69) ערכת תווים utf8mb4 COLLATE utf8mb4_unicode_ci;

אם אנו מעבירים נתונים עם תווים UTF-8 בשאילתות בסיס נתונים, עלינו לוודא שכל חיבור בסיס נתונים שנוצר תואם קידוד UTF-8.

עבור חיבור מבוסס JDBC ניתן להשיג זאת באמצעות כתובת ה- URL הבאה לחיבור:

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

8. מסקנה

במאמר זה הדגמנו כיצד להבטיח שטומקט משתמש בקידוד UTF-8.


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