เข้ารหัสตัวอักษรในอดีต

ในอดีตคนไทยที่เขียนเว็บเพจ
จะใช้ charset เป็น tis-620
หรือ windows-874 หรือ iso-8859-11
ส่วนแฟ้มเว็บเพจ
มีการเข้ารหัสแบบ ansi
คือ 1 ตัวอักษร = 1 ไบท์

ปัจจุบันการเข้ารหัสตัวอักษร
จะใช้ utf-8 ซึ่งรองรับได้เกือบทุกภาษา
และเครื่องมือต่าง ๆ ก็ใช้ utf-8
แต่ตัวอักษรที่ไม่ใช่ภาษาอังกฤษ
จะใช้พื้นที่ในการเขียนเว็บเพจ
หรือการเก็บข้อมูลมากกว่า 1 byte
เช่น ก จะใช้พื้นที่ 3 byte
เปลี่ยนจาก A1 ฐาน 16 ในตาราง ascii
เป็น E0B881 ฐาน 16 ใน UTF-8

เว็บเพจเดิม
ใช้ windows-874 และเข้ารหัสแบบ ansi
แต่เครื่องบริการกำหนด default
ให้ charset เป็น utf-8
ทำให้ต้องกลับไปแก้ไขเว็บเพจทั้งหมด
เนื่องจากพัฒนาเว็บเพจเป็นแบบ static
ทำให้ต้องตามกลับไปแก้ไขทุกแฟ้ม

ถ้าระบบใดพัฒนาเป็นแบบ dynamic
มีการแยก header ให้ include เข้าไป
ก็จะแก้ไขได้โดยง่าย

ซึ่งข้อดีข้อเสียของ
ทั้ง dynamic และ static ก็ต่างกันไป
เช่นเดียวกับระบบรวมศูนย์
และกระจายศูนย์ ที่อยู่ระบบใด
ก็จะเห็นข้อดีของระบบอื่น
และต้องการเปลี่ยนแปลงอยู่เสมอ

https://thaiall.com/fonts/[:])
Font
ปรับปรุง charset

อ่าน text file หลายแฟ้ม ทั้ง utf-8 และ tis-620 ก็ต้องแปลงกัน

check utf-8 and convert
check utf-8 and convert

เดิมอ่านข้อมูล text file แบบ tis-620 แล้ววันหนึ่ง ก็มีแฟ้มข้อมูล (Data) เป็น utf-8 ที่ต้องใช้ script สำหรับอ่าน utf-8 แล้วก็ต้องกำหนด meta content-type ให้ charset เป็น utf-8

แต่หากต้องการอ่านแฟ้ม utf-8 มาแสดงใน tis-620 ก็ต้องมีการ convert ข้อมูลกันหน่อย เดิมทีนั้น จะอ่านข้อมูลจาก text file แบบ tis-620 ลงอาร์เรย์ แล้วใช้งาน ก็ต้องปรับให้รองรับแฟ้มทั้งแบบ tis-620 และ utf-8

code เดิม คือ

<meta http-equiv=”content-type”
content=”text/html;charset=tis-620″ />
<?php
$f=@file(“data.txt”);
echo $f[0];
?>

code ใหม่ คือ

<meta http-equiv=”content-type”
content=”text/html;charset=tis-620″ />
<?php
$f=@file(“data.txt”);
if (mb_check_encoding(file_get_contents(“data.txt”), ‘UTF-8’)) {
$f[0] = iconv(“utf-8″,”tis-620”,$f[0]);
}
echo $f[0];
?>

แฟ้มที่เป็น utf-8 คือ http://www.thaiall.com/checklist.php