วันพุธที่ 13 ตุลาคม พ.ศ. 2553

การ Encoding ในภาษา Java

เวลาเขียนเว็บในหน้า page JSP
เรามักจะกำหนด Encoding เพื่อเข้าระหัสให้อ่านภาษาไทยได้ดังนี้
TIS-620 (ALL)
ISO-8859-1 (for IE)
สำหรับ การประกาศเช่น

<%@page language="java" contentType="text/html"%>
<%@page pageEncoding="TIS-620"%>
........
<head>
<title>Test Encode</title>
<meta http-equiv="Content-Type" content="text/html; charset=TIS-620"/>

ซึ่งเป็นการเ้้ข้าระหัส encode/decode ภาษาไทยเท่าไร ภาษาต่างประเทศอื่นจะไม่ support

ดังนั้นเพื่อแก้ปัญหาดังกว่าเราจึงทำการเข้า ระหัสด้วย UTF-8 ซึ่งเป็นการเข้าระหัสทุกภาษาบนโลกใบนี้เค้าว่าอย่างนั้น
ตัวอย่าง

<%@page language="java" contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
........
<head>
<title>Test Encode</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

สำหรับในหน้า display สามารถแสดงภาษาได้ครับแต่ ถ้าเรากรอกข้อมูลภาษาไทยเช่น ใน text box ข้อมูล นั้นจะเป็น ภาษาต่างดาว
และวิธีที่ผมใช้การแปลงเข้าระหัสใหม่ดังนี้

String var_name = "ภาษาต่างดาว ผกดหำพหกดดพะ";

new String(var_name.getBytes("ISO-8859-1"), "UTF-8");

เพียงเท่านี้ก็สามารถอ่านภาษาไทยและภาษาอื่นได้แล้วครับ

1 ความคิดเห็น: