ถามเซียน ๆ Joomla หน่อยครับ เกี่ยวกับเรื่อง Character Encoding

คือมีลูกค้ารายนึงใช้อยู่ (http://thaijusticereform.com/) ปรากฏว่า
มันเป็นแต่ tis-620 ทั้ง ๆ ที่ กำหนดไว้เป็น utf-8 แล้ว งงมากครับ

mysql เป็น UTF-8 หรือเปล่าครับ

ผม view code ก็เป็น UTF หากผมบังคับ Safari ให้เป็น UTF-8 ก็เป็นภาษาไทยปกติ
data ไม่ได้เป็น utf นี่ครับ

DB เป็น UTF-8 ครับ

ผมใช้ Safari ก็ดูได้ปกติครับ แต่ว่าคนที่ใช้ IE กับ Firefox มันจะเป็น tis-620 อย่างเดียว
ทั้ง ๆ ที่ ในส่วนของ head ก็ set เป็น utf-8 อยู่แล้ว ก็เลยงงครับ …

สุดท้าย สร้าง .htaccess แล้วใส่ AddDefaultCharset UTF-8 ไปเลย แก้ปัญหาไปก่อน
พรุ่งนี้ค่อยมาดูว่ามันเกิดจากส่วนไหนกันแน่ครับ อิอิ เหนื่อย

ก็ UTF-8 น่ะครับ

ครับ ตอนนี้เป็น UTF-8 แน่ ๆ ครับ เพราะใส่ AddDefaultCharset UTF-8 ไปใน .htaccess

[quote author=212cafe.com link=topic=11979.msg116758#msg116758 date=1214071790]
ครับ ตอนนี้เป็น UTF-8 แน่ ๆ ครับ เพราะใส่ AddDefaultCharset UTF-8 ไปใน .htaccess

ลองไปที่ includes/ เปิดไฟล์ database.php
แล้วหาบันทัด $this->_table_prefix = $table_prefix;

[quote author=siamwebsolution.com link=topic=11979.msg116762#msg116762 date=1214072328]
ลองไปที่ includes/ เปิดไฟล์ database.php
แล้วหาบันทัด $this->_table_prefix = $table_prefix;

น่าจะเป็นปัญหามาจาก apache หรือ php.ini หรือเปล่า
ปกติ charset หน้าเว็บจะเป็นไปตาม meta ที่กำหนดไว้ใน head
แต่ถ้ากำหนดแล้วไม่เปลี่ยนแปลงหมายความว่าน่าจะมีการกำหนด default ไว้ใน apache หรือ php.ini
ก็ต้องไปเอา default charset ในนั้นออกก่อนครับ

เป็นอยู่เว็บเดียวครับ เว็บอื่นทั้งที่ใช้ tis-620 หรือ utf-8 ไม่เป็นครับ ทั้ง ๆ ที่มันก็ควรจะเป็นไปตาม
TAG meta น่าจะเป็นที่ file ที่ upload ขึ้นไปครับ เพราะ DB ก็ check แล้ว utf-8 ปกติ

[quote author=212cafe.com link=topic=11979.msg116820#msg116820 date=1214126653]
เป็นอยู่เว็บเดียวครับ เว็บอื่นทั้งที่ใช้ tis-620 หรือ utf-8 ไม่เป็นครับ ทั้ง ๆ ที่มันก็ควรจะเป็นไปตาม
TAG meta น่าจะเป็นที่ file ที่ upload ขึ้นไปครับ เพราะ DB ก็ check แล้ว utf-8 ปกติ

เออ…อย่าลืมมองไปถึงว่าเราใช้โปรแกรมอะไรที่เขียนโปรแกรมเว็บหรือแก้โปรแกรมเว็บ หากใช้ dreamwever ก็ต้องระวังไปเปลี่ยน encoding ใน source โปรแกรมด้วย

และไอคอนเนี้ย " :smash: " เปลี่ยนเถอะ… ตาลายแล้ว

ลองเอา .htaccess ออกแล้วเรียก

curl -I http://thaijusticereform.com

จะเห็น header ว่าพ่นออกมาเป็นอะไรครับ

ตอนนี้คงเป็นเพราะบังคับมันเลยออก utf-8

curl -I http://thaijusticereform.com

HTTP/1.1 200 OK
Date: Sun, 22 Jun 2008 15:12:32 GMT
Server: Apache/1.3.37 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.7e-p1 PHP/4.4.7 FrontPage/5.0.2.2510
X-Powered-By: PHP/4.4.7
Set-Cookie: fdfef3cd27f7768a0d7ea6fd53850e44=-; path=/
Set-Cookie: mosvisitor=1
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Sun, 22 Jun 2008 15:12:32 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=UTF-8

แต่เว็บอื่นๆ ในเครื่องนั้นก็เป็น tis-620 นะ

curl -I Adwordthailand.com

HTTP/1.1 200 OK
Date: Sun, 22 Jun 2008 15:15:21 GMT
Server: Apache/1.3.37 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.7e-p1 PHP/4.4.7 FrontPage/5.0.2.2510
X-Powered-By: PHP/4.4.7
Connection: close
Content-Type: text/html; charset=tis-620

curl -I Aedtravel.com

ว้าว พี่ pizzaman มาช่วยตอบกระทู้

[quote author=poomjit link=topic=11979.msg116878#msg116878 date=1214148815]
ว้าว พี่ pizzaman มาช่วยตอบกระทู้

ต้นเขาใช้ mac และ mac นี่หากเราใช้โปรแกรม textedit หรือโปรแกรม dreamwever ไปแก้ source โปรแกรม มันจะไปเปลี่ยน charset encoding ของ document ด้วย…หากเรากำหนดเอาไว้

วิธีง่ายๆ เขียนโปรแกรมสั้นๆแสดงแต่ html ให้เป็น utf-8 กับเขียน post ลง mysql แล้วนำขึ้นมาแสดงด้วย encoding utf-8 ด้วยโปรแกรมอีดิเตอร์ที่เราเอาไปแก้ code โปรแกรมเว็บดูครับ

ต้องลองดูครับ ผมก็เคยเจอปัญหาแบบนี้ (อย่าลืมว่าเราให้แสดงผลภาษาไทย แต่ตอน input data ลงไป…เราแน่ใจได้อย่างไรว่าเรา input ด้วย data utf-8)

คืออันนี้ไม่ใช่เว็บผมเองครับ เป็นเว็บของลูกค้า ซึ่งที่งงก็คือ ถึงแม้ว่าค่าปกติ ของผมจะเป็น tis-620 แต่เว็บอื่น ๆ
pookie# curl -I sabuyphoto.com
HTTP/1.1 200 OK
Date: Sun, 22 Jun 2008 16:29:40 GMT
Server: Apache/1.3.37 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.7e-p1 PHP/4.4.7 FrontPage/5.0.2.2510
X-Powered-By: PHP/4.4.7
Connection: close
Content-Type: text/html; charset=tis-620

อย่างอันนี้ เค้าใช้ WordPress ซึ่งใช้ encoding เป็น utf-8 ที่ใส่ไว้ใน meta มันก็ใช้ได้ปกติ
เว็บอื่น ๆ อีกร้อยกว่าเว็บปกติหมด มีปัญหาแค่เว็บเดียว ก็เลยงงครับ เครื่องเดียวกัน เท่าที่ดูผมว่า น่าจะ
เป็นที่ file ตอน upload ขึ้นไปครับ อย่างที่พี่ 1 ว่า เพราะว่าลูกค้าผมเค้าก็ใช้ mac …

ว่าแต่พี่ pizzaman รู้ได้ยังไงครับ ว่าเครื่องผมมีเว็บอะไรบ้าง เพราะเว็บที่ check IP บางเว็บ มันก็
ไม่ได้ update เท่าไร อย่างเช่น http://whois.webhosting.info/202.142.213.175
เห็น 21 เว็บเอง ทั้ง ๆ ที่มีเป็นร้อยเว็บละ เครื่องนี้ งงครับ อิอิ

คือต้นต้องไปสืบประว้ติ code ไฟล์ที่เกี่ยวข้องมาจากเจ้าของเดิมก่อนว่าเขาใช้โปรแกรมอะไรมาแก้โค้ดหรือเปล่าด้วยครับ
ต้นลองไปทบทวนความน่าจะเป็น document encoding ดูอีกที แต่พี่ก็ไม่ฟันธงว่าเพราะเหตุอะไรเหมือนกันครับ

แต่เคยแก้ joomla UTF-8 ด้วย dreamwever แล้ว upload ขึ้นไปก็จะมีเพี้ยน

อ่า… ต้องไปจ้างนักสืบแล้วล่ะมั้ง ฮ่าฮ่า

แต่เป็น joomla ใช่ไหม… ลองเอาจาก site ต้นฉบับในเวอร์ชั่นเดียวกันทับลงไป (อย่าลืม bak ก่อนนะ) น่าจะมองเห็นทางน่าจะเป็น.