[CentOS] มีปัญหาเรื่องไฟล์ภาษาไทยครับ

ผมลองลง CentOS 5.6 ใน Virtual Box

แล้วใช้คำสั่ง #locale-gen thai

แล้วใช้คำสั่ง #locale -a| grep th แสดงผลดังนี้

lithuanian

thai

th_TH

th_TH.tis620

th_TH.utf8

ใช้คำสั่ง #file .

แสดงว่า UTF-8 Unicode text, with no line terminators

หลังจากนั้นใช้ php

<?php

$filename = ‘ขายบ้าน.txt’;

if (file_exists($filename)) {

echo "The file $filename exists";

} else {

echo "The file $filename does not exist";

}

?>

แสดงผลดังนี้

The file ขายบ้าน.txt does not exist

อยากทราบว่าเป็นเพราะอะไร ทำไมถึงหาไฟล์ไม่เจอครับ

ลองใช้งานกับ .htaccess หรือยังครับ

ผมลองที่เครื่องก็ปกติดีครับ Script ใช้งานได้

[root@ns1 ~]# locale -a| grep th

lithuanian

thai

th_TH

th_TH.tis620

th_TH.utf8

ก็มีเหมือนกัน

http://host.bangkok4u.com/test.php

ผมเดาดูนะว่าการตั้งชื่อไฟส์ ขายบ้าน.txt อาจจะมีเคาะว่างด้านหน้าด้านหลังหรือเปล่า ลองใช้ Notepad save แล้วลองเอาขึ้นลองดูครับ

ไฟล์ php save เข้ารหัสแบบ utf-8 ด้วยครับ

ลองให้มันสร้างไฟล์ที่เป็นชื่อภาษาไทยดู

อยากทราบว่าถ้าใช้คำสั่ง #file [filename] มันแสดงผลว่าอะไรครับ ทั้งไฟล์ php และไฟล์ txt ครับ

#file .

test.php: PHP script text

¢ÒºéÒ¹.txt: empty

ได้แบบนี้อะครับ

คือตอนนี้ถ้าผมสร้างไฟล์ภาษาไทยจาก CentOS ก็ทำงานได้ตามปกติ แต่ SSH Secure Shell มองเห็นเป็นตัวประหลาด

เดี๋ยวจะลองใช้ file zilla ftp เข้าไปดูว่าจะมีปัญหาไหมครับ

ใช้โปรแกรมอะไร ssh ครับ

แล้วกำหนด charset ของโปรแกรมเป็นอะไร ต้องกำหนดให้ถูกต้องตรงกับ encoding ของชื่อไฟล์ด้วยครับถึงจะแสดงผลเป็นภาษาไทยออกมา

แต่ถ้าไม่ได้กำหนดแล้วมันแสดงเป็นตัวยึกยือมันก็ไม่ได้มีปัญหาอะไร ก็แค่การแสดงผลผ่าน ssh ไม่เกี่ยวอะไรกับ apache/php

ssh ตั้งค่าฟอนท์ยัง อย่าลืมเรื่องฟอนท์อะ