การใช้ UTF-8 เป็นการเข้ารหัสที่สะดวกกว่าสำหรับ JSP เนื่องจากหน้าเว็บมักจำเป็นต้องป้อนหรือส่งออกหลายภาษา
การตั้งค่าการแปลงรหัส JSP นั้นไม่ใช่เรื่องยาก เพียงจำไว้ว่าต้องเพิ่มมัน มิฉะนั้น การเข้ารหัสเริ่มต้นของ JSP จะไม่ใช่ UTF-
8
แต่อย่าเพิ่งท้อแท้เพราะเราสามารถเข้าถึงข้อมูลที่เข้ารหัส UTF-8 ผ่านทางอินเทอร์เฟซ JDBC ของ Connection/J ที่ MySQL จัดเตรียมไว้ให้ การใช้ JDBC เพื่อแปลงรหัสโดยอัตโนมัตินั้นสะดวกมากสำหรับพวกเราที่เขียนหน้าเว็บ
!!
ไปที่หัวข้อ ฉันจะอธิบายในไม่กี่ขั้นตอนด้านล่าง มีน้อยมากแต่
เป็นที่ที่ต้องตั้งค่าทั้งหมด ฉันแค่เสนอให้ทุกคนสนใจ
12
Class.forName("com.mysql.jdbc.Driver").newInstance(); การเชื่อมต่อ conn = DriverManager.getConnection("jdbc:mysql://[hostname]/[database]?user=&password=&useUnicode=true&CharacterEncoding=utf -8");
ต้องเพิ่มข้อความสีแดงเนื่องจากเป็นการโทร (ควรโทรได้) JDBC ใช้การเข้ารหัส UTF-8 เพื่อเข้าถึงข้อมูล พูดง่ายๆ ก็คือ JSP บอก JDBC... ฉันต้องการเพียง UTF-8 เท่านั้น อย่าพูดถึงเรื่องอื่นเลย ...
มาทำความเข้าใจตามนี้ครับ ^^"
PS:
จริงๆแล้วผมแนะนำอย่างน้อยให้ใช้ JSP include สำหรับส่วนนี้ครับ เผื่อจะ error น้อยกว่าครับ แค่ใส่ไว้เมื่อจำเป็นก็พอครับ ฉัน...
ปัญหาก่อนหน้านี้คือมีไฟล์ที่ตั้งค่าการเข้ารหัส JDBC เป็น Big5
ฉันใช้เวลานานกว่าจะหามันเจอ...
สำหรับเพื่อนขั้นสูง ควรลองใช้ JavaBean เพื่อควบคุม
2
ง่ายกว่า
ส่วนของหน้าเว็บจะต้องตั้งค่าเป็นโค้ดต่อไปนี้
1
<%@ หน้า contentType="text/html;charset=utf-8" %>
มันบอก JSP และเบราว์เซอร์ (เช่น IE) ว่าการเข้ารหัสของฉันควรแสดง
เป็น UTF-8 สามารถเพิ่มการเข้ารหัสเพจด้านล่างได้หรือไม่... ฉันคุ้นเคยกับการเพิ่มมันแล้ว ไม่รู้ว่าจะมีปัญหาอะไรไหม โปรดดูข้อมูลเชิงลึกที่ดีของ javmon65 บทความจะช่วยให้คุณเรียนรู้เพิ่มเติม http://www.javaworld.com.tw/jute/post/view?bid=6&id=27113&sty=2
1
<%@ หน้า pageEncoding="utf-8" %>
3.
เมื่อคุณใช้แบบฟอร์มเพื่อถ่ายโอนข้อมูลไปยังเว็บเพจอื่น จะต้องตั้งค่าโหมดการเข้ารหัสสำหรับการรับข้อมูลด้วย มิฉะนั้น หากคุณใช้การเข้ารหัสเริ่มต้นของ JSP การเข้ารหัสทั้งหมดที่คุณเห็นจะอ่านไม่ออก
1
<% request.setCharacterEncoding("utf-8"); %>
4.
ในทางตรงกันข้าม หากคุณส่งข้อมูลออกไป (ดูเหมือนว่าแบบฟอร์มจะรวมอยู่ด้วย ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ฉันต้องขอความช่วยเหลือจากคุณ)
คุณต้องตั้งค่ารหัสต่อไปนี้
1
<% response.setContentType("text/html;charset=utf-8"); %>
บอก Tomcat ว่าต้องใช้ UTF-8 เพื่อจัดการการถ่ายโอนข้อมูล
5
นี่เป็นจุดสำคัญมากเช่นกัน อย่าลืมบันทึกในรูปแบบ UTF-8 หลังจากแก้ไขไฟล์ JSP ของคุณแล้ว เพราะฉันใช้ Dreamweaver MX
MX จะบันทึกไฟล์ให้คุณโดยอัตโนมัติตาม ContentType ดังนั้นไม่ต้องกังวล แต่ถ้าคุณใช้ NotePad ในการเขียน JSP คุณต้องเลือกรูปแบบ UTF-8 เพื่อบันทึกในรูปแบบไฟล์ มิฉะนั้น หน้าเว็บจะแสดงเป็น ตัวอักษรที่อ่านไม่ออก
เช่น คุณบันทึกในรูปแบบ Big5 แต่การเข้ารหัสหน้าเว็บถูกตั้งค่าเป็น UTF-8
เมื่อ JSP สื่อสารกับเบราว์เซอร์ มันจะถูกประมวลผลตามธรรมชาติใน UTF-8 ดังนั้นรูปแบบ Big5 จะถูกแปลงเป็น UTF-8... แน่นอนว่ามันจะอ่านไม่ออก ดังนั้นจำไว้ว่านี่เป็นสิ่งสำคัญมาก