Page 1 of 3

ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่าง

Posted: Wed Feb 21, 2007 2:15 am
by sayansanya
:D :Dต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่างไร  ช่วยแนะนำให้ด้วย รออยู่ครับ  :pop :pop

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Wed Feb 21, 2007 6:18 pm
by joom2

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Thu Feb 22, 2007 6:04 am
by joomlacorner
utf-8 มีส่วนที่เกี่ยวข้องหลักอีกอันนอกจากเรื่องการแสดงผลแล้ว ก็คือในส่วนของ database ที่ใช้เก็บ

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sun Feb 25, 2007 2:59 pm
by i_siam_guy
หมายความว่า set เป็น utf-8 ทั้งเว็บ เลยใช่มั๊ย....
ถ้าใช่ ให้เพิ่ม Directive (ของ Apache) นี่ลงไปใน
+ httpd.conf (แล้ว restart web server ใหม่ ถ้าทำได้)
+ .htaccess หรือ htaccess.txt (แล้วแต่ว่า web server กำหนดให้อ่าน file อะไร)

AddDefaultCharset utf-8

+ ใช้ได้กับ mime type text/plain หรือ text/html เท่านั้น
+ มันจะส่งออกมาทาง Response Header
+ มันจะ override META tag ใน body
+ ถ้าใน Response Header มีระบุ charset แล้ว (ด้วยคำสั่ง header() ของ php) มันจะไม่เขียนทับ

อ่านรายละเอียดเพิ่มเติม  http://httpd.apache.org/docs/2.2/mod/co ... ultcharset

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 10, 2007 6:52 am
by toonarmythai
joomlacorner wrote:
utf-8 มีส่วนที่เกี่ยวข้องหลักอีกอันนอกจากเรื่องการแสดงผลแล้ว ก็คือในส่วนของ database ที่ใช้เก็บ
เห็นด้วยอย่างยิ่งครับ ต้องทำหลายจุดด้วยกัน ให้ดีแล้ว เอาลายไทยไปศึกษาเป็นแนวทางก่อนได้ครับ

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Wed Mar 14, 2007 10:43 am
by araregodji
i_siam_guy wrote: หมายความว่า set เป็น utf-8 ทั้งเว็บ เลยใช่มั๊ย....
ถ้าใช่ ให้เพิ่ม Directive (ของ Apache) นี่ลงไปใน
+ httpd.conf (แล้ว restart web server ใหม่ ถ้าทำได้)
+ .htaccess หรือ htaccess.txt (แล้วแต่ว่า web server กำหนดให้อ่าน file อะไร)

AddDefaultCharset utf-8

+ ใช้ได้กับ mime type text/plain หรือ text/html เท่านั้น
+ มันจะส่งออกมาทาง Response Header
+ มันจะ override META tag ใน body
+ ถ้าใน Response Header มีระบุ charset แล้ว (ด้วยคำสั่ง header() ของ php) มันจะไม่เขียนทับ

อ่านรายละเอียดเพิ่มเติม  http://httpd.apache.org/docs/2.2/mod/co ... ultcharset
ถ้าใช้ที่ host เช่าแล้ว  มันไม่ได้ใส่ AddDefaultCharset utf-8  ใน  apache
แล้วweb ที่เราทำ ใช้ utf-8 จะมีปัญหาเรื่อง ตัว ยึกยือ หรือป่าวครับ ???

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Wed Mar 14, 2007 12:51 pm
by thaizeal
ก็แค่เข้าไปดูใน MySQL ว่าสามารถเปลี่ยน Encodingเป็น UTF-8 ได้หรือเปล่า
และจะมีปัญหาแน่นอนครับ ถ้า database set เป็น UTF-8 ไม่ได้

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Wed Mar 14, 2007 2:36 pm
by i_siam_guy
ถ้าใช้ที่ host เช่าแล้ว  มันไม่ได้ใส่ AddDefaultCharset utf-8   ใน  apache
ปกติ host ให้เช่า เค้าก็ไม่ใส่อยู่แล้ว...
แต่ท่านสามารถกำหนดเองได้... ใน .htaccess (หรือ htaccess.txt) ซึ่งก็คือ text file ธรรมดา ๆ ที่ท่านสร้างขึ้น แล้วก็ upload มันขึ้นไปไว้ภายใต้ "Directory" ที่ท่านต้องการควบคุมเป็นพิเศษ (ให้สอบถามจาก host admin ว่า ตั้งให้ Apache Web Server อ่าน file ชื่ออะไร ... ส่วนใหญ่จะให้อ่าน file ชื่อ .htaccess หรือ htaccess.txt)

การสร้างเว็บ utf-8 (หรือ charset อะไรก็แล้วแต่)
1. ต้องระบุให้ ฐานข้อมูลเก็บ charset เป็น utf-8
2. ต้อง SAVE htdocs (*.php, *.html ) เป็น utf-8
3. ต้องระบุ Charset ให้ Browser ผู้รับว่าจะใช้ Charset=utf-8 โดย
+ เขียนไปที่ META TAG ของ htdocs หรือ
+ ให้ php ส่ง Response Header ออกไป -> header( 'Content-Type:text/html; charset=utf-8'); หรือ
+ เขียนไว้ใน .htaccess (htaccess.txt) -> AddDefaultCharset utf-8 หรือ

+ เขียนไว้ใน Web Server Config File -> Virtual Host หรือ Directory basic ->AddDefaultCharset utf-8


ถ้า Browser ของผู้รับ.. ไม่เจอในข้อ 3 อาจเกิดปัญหาตัวยึกยือได้ เพราะ Browser จะเลือกใช้ Default Encoding ที่ user (thai) ตั้งไว้คือ encoding=thai (ก็คือให้ใช้ Charset=tis-620 หรือ windows-874 นั่นเอง) ทำให้ผู้ใช้ต้องกดเลือก (เดา) encoding เอง

สำหรับผม ...ผมชอบให้ php ส่ง header ออกไป โดยจะเขียนเป็น common include file 

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Thu Mar 15, 2007 9:25 am
by araregodji
แล้วต้องเขียนข้อมูลลงใน htaccess บ้างครับ แค่
AddDefaultCharset utf-8
นี่เองเหรอ

ถ้าผมจะลองที่เครื่อง local ต้องไปแก้ apache ยังไง เพื่อให้มันไปอ่าน htaccess ด้วย อยากสร้าง environment ให้เหมือน host
เวลา update จะได้ไม่มีปัญหา

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Thu Mar 15, 2007 11:01 am
by i_siam_guy
การแก้ไข Config ของ Apache ให้อ่าน htaccess.txt ที่อยู่ภายใต้ documentroot
+ ให้หา file ชื่อ httpd.conf น่าจะอยู่ directory เดียวกันกับที่ Apache ติดตั้งอยู่
+ ใช้ "Note Pad" text editor ธรรมดา ๆ เปิด httpd.conf ขึ้นมา (ถึงแม้ มันจะไม่นามสกุล .txt ก็ตามเถอะ)
+ เพิ่ม Directive ต่อไปนี้ลงไป (2 items)
++ ที่ Global Server (เอาบรรทัดถัดจาก DocumentRoot ก็แล้วกัน) เพิ่ม Directive
AccessFileName htaccess.txt
(ลองดูว่า มี AccessFileName set ไว้ก่อนหรือเปล่า อันที่อยู่ล่างสุด Overload อันบนสุด)
++ เพิ่ม Directive AllowOverride ลงไป ภายใต้ Directory ที่ต้องการ สมมุติ DocumentRoot อยู่ ที่ c:\a\b dir (windows)
ก็ให้เขียนแบบนี้ (คล้าย ๆ html tag)


AllowOverride All


+ ทำการ Restart Apache ใหม่ (ถ้า start ไม่ขึ้น ก็แสดงว่าเขียน directive ผิด เข้าไปแก้ให้ถูกต้อง)

ใช้งาน htaccess.txt
(ถ้าตั้งชื่อเป็น .htaccess เวลา Upload ไปที่ Linux แล้วคุณจะมองไม่เห็น เพราะ file name ที่นำหน้าด้วย ."จุด" มันจะเป็น hidden file จริง ๆ แล้วก็ถาม admin ก่อนว่าตั้งให้อ่าน file ชื่ออะไรกันแน่)
+ สร้าง htaccess.txt ไปวางไว้ ที่ c:\a\b\htaccss.txt (แก้ไขเป็น: DocumentRoot\htaccess.txt)
+ แล้วก็เขียน Apache Directive ลงไปในนั้น หล่ะ
+ ถ้าเขียนผิด ... Browser มันจะแจ้งว่า Internal Server Error:500 .. ก็ไปแก้ใน htaccess.txt ให้ถูกต้อง

หมายเหตุ.. คำว่า Directive คือ ตัวแปรสำหรับกำหนดทิศทางในการทำงานให้กับ Apache Webserver

อ่านเพิ่มเติม...
+ http://httpd.apache.org/docs/2.2/howto/htaccess.html
+ http://httpd.apache.org/docs/2.2/mod/co ... ssfilename
+ http://httpd.apache.org/docs/2.2/mod/co ... owoverride
+ http://httpd.apache.org/docs/2.2/mod/co ... #directory

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Thu Mar 15, 2007 1:36 pm
by araregodji
i_siam_guy wrote:


AllowOverride All

อันนี้ใส่ไว้ทำไมครับ  พอผมใส่แล้ว มันเข้า web ในเครื่องไม่ได้เลย
แต่พอเอาออก ก็เข้าได้ แล้วใส่ค่า
AddDefaultCharset utf-8  <== ใน htaccess.txt แล้ว  ทดสอบดู  ก็ยังเป็นภาษายึกยือๆ

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Thu Mar 15, 2007 3:44 pm
by i_siam_guy

AccessFileName htaccess.txt

AllowOverride All


หมายความว่า "ภายใต้ directory c:\a\b ถ้าเจอ file htaccess.txt อนุญาติให้ directive ที่เขียนไว้ใน htaccess.txt เขียนทับ (AllowOverride) directive ที่ set ไว้ใน httpd.conf ได้ทุก options เท่าที่ web server อนุญาติให้ทำได้"

อย่างแรกคือ ... "c:\a\b" ผมยกตัวอย่างเฉย ๆ จะต้องเปลี่ยนเป็น "directory ที่เก็บ htdocs ของคุณ" หรือ "ค่าเดียวกันกับ DocumentRoot ใน httpd.conf"
อย่างที่สองคือ .. ผมอาจจะเขียนเครืองหมาย ">"ที่อยู่ท้ายสุด ติดกับ "c:\a\b" ให้ "เว้นวรรค"ด้วย จาก "" เปลียนเป็น ""; 
อย่างต่อไป - c:\a\b อาจหมายถึง c:\a\bb หรือ c:\a\baba ก็ได้ ให้ลองใส่ backslash ปิดท้ายดู แบบนี้ "c:\a\b\"

ที่ยังเป็นตัวยึก ๆ ยือ ก็อาจมีหลาย ๆ สาเหตุ...
อย่างแรกคือ ... คุณทำข้อแรกยังไม่ผ่าน Apache เลยไม่อ่าน htaccess.txt
อย่างต่อไป - ให้คุณลองดู set Encoding ของ Browser (IE6) เป็น Auto หรือเปล่า (ให้ set เป็น Auto)

ทดสอบว่า Apache อ่าน htaccess.txt หรือเปล่า?
+ สร้าง htaccess.txt ไปวางไว้ที root dir ของคุณ
+ ลองเขียน "อะไรก็ได้" ลงไป ...
+ แล้วดูว่าเวลาเรียกมันเกิด 500:Internal Server Error หรือเปล่า ถ้าใช่ก็แสดงว่า มันอ่านแล้ว
+ ลบ "อะไรก็ได้" ออก แล้วก็เขียน directive ที่ชอบ ๆ ลงไป..

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 17, 2007 5:08 am
by araregodji
ลองแก้ไขดูแล้วครับ  ปัญหาคือ file htaccess.txt ที่ผม copy จากfolder ของ joomla ใช้ไม่ได้เลย
ผมต้อง comment ทุกบรรทัดของไฟล์ htaccess.txt ทิ้ง  แล้วเพิ่ม

AddDefaultCharset utf-8

ลงไปก็ใช้ได้ผล  แต่มันเกิดปัญหาใหม่ขึ้นมาว่า  พอเปิดหน้าแรกของเวป มันดันโหลดมาให้ไม่หมด
โหลดมาแค่ 80%-90%  มันก็ดันแล้ว  ทำให้หน้าเวปที่อยู่ส่วนล่างๆมันขาดหายไป  อันนี้ งง  ???

แต่ถ้าไม่ได้ กำหนดให้ AddDefaultCharset utf-8 ลงไปในไฟล์ htaccess.txt
หรือทำแบบเดิม ไปกำหนด AddDefaultCharset utf-8 ลงไปในไฟลื httpd.conf
ก็จะแสดงผลได้ปกติ  อันนี้มีวิธีแก้หรือป่าวครับ  หรือต้องกำหนดอะไรเพิ่ม ใน htaccess.txt

หรือว่า สามารถ copy directive ของ httpd.conf มาลงที่ไฟล์ ได้เลย  ???

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 17, 2007 8:52 am
by i_siam_guy
ไม่ใช่ว่า "ทุก Directive" ของ httpd.conf จะนำมาเขียนลงบน .htaccess ได้
ตัวไหนเขียนลงใน .htaccess ได้ มันจะบอกไว้ที Context: ในคู่มือ directive ของ Apache

ที่คุณใช้ .htaccess ของ joomla ไม่ได้ อาจเป็นเพราะ Apache ของคุณไม่มี module rewrite (mod_rewrite) เพราะว่า
module นี้ไม่จำเป็นต้องใช้ ถ้าเป็น localhost (เวลา Build Apache แบบ Default แบบไม่กำหนด Config อะไรเลย มันจะไม่รวม module rewrite เข้าไปด้วย ซึ่งจะเจอกับพวกที่ load package สำเร็จรูปมาใช้ Apache+MySql+PHP บน windows ย่อเป็น WAMP)
 
ที่มันแสดง content มาไม่หมด ถ้าจะตอบแบบง่าย ๆ ก็คือ PHP และ Apache ของคุณ ทำงานเข้าขากันได้ไม่ค่อยดีนัก มักเกิดขึ้นกับ PHP ที่เป็นแบบ cgi ก็จะเป็นกับพวก package WAMP) วิธีแก้ก็คือ
+ (ลอง) ใช้ mod_deflate ใน Apache (2.0 up) ช่วย (ต้องดูด้วยว่า Apache คุณมี module deflate หรือเปล่า)
http://httpd.apache.org/docs/2.2/mod/mo ... .html&nbsp; .htaccess ของ joomla จะใช้ mod ตัวนี้ ป้องและจัดการกับพวก hacker ที่จะแก้ไข config file ของคุณ
++ มี mod_deflate (รุ่น 1.3 จะไม่มีตัวนี้) -> เอาไว้ "อัด" หรือลดขนาด Content ก่อนส่งให้ (Client) Brower แต่ที่สำคัญมันจะอ่าน content ทั้งหมดก่อน เข้ามาเก็บใน buffer ก่อน -> อัดด้วย GZIP -> ส่งให้ browser -> browser ขยาย - > ผู้ใช้อ่านได้ตามปกติ
+ PHP Intrepreter จะต้องเป็น mod ของ Apache ... (ที่เป็น package ใช้กับ windows จะเป็นแบบ cgi)

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 17, 2007 9:24 am
by araregodji
???  ยิ่งอ่านยิ่งงง  ;D

จะพยายามแก้ที่ละจุดก่อนละกันครับ
ไปเช็คดูที่เครื่องแล้ว
apache/2.0.50
php/5.0.5  <== ตัวนี้ ผม install มาพร้อมกับ zend studio 5.2.0

PHP Intrepreter  ตัวนี้ตามที่ผมเข้าใจ คือมันโหลดพร้อม apache ใช่ป่าวครับ
ไปเช็ค httpd.conf แล้วมีบรรทัดนี้อยู่
LoadModule php5_module "C:\Program Files\Zend\ZendPlatform-2.2.1\bin\php5apache2.dll"
น่าจะ ok ใช่ได้

ส่วน mod_rewrite มันถูก comment ไว้ที่ไฟล์ httpd.conf ต้องไปเอาก่อนหรือป่าวครับ
#LoadModule rewrite_module modules/mod_rewrite.so

mod_deflate หาไม่เจอคงยังไม่มีใน version นี้

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 17, 2007 10:05 am
by i_siam_guy
เดี๋ยวยิ่งแก้ จะยิ่งยุ่งเป็น "ลิงแก้แห"

ถ้าจะแก้ Default Charset ของ Joomla ให้ทำดังนี้
+ เปิด file  joomla_root_dir/index.php
+ หาบรรทัดที่ 230 ; header( 'Pragma: no-cache' );
+ เพิ่ม header( 'Content-Type:text/html; charset=utf-8'); หลังบรรทัดที่ 230
+ Save
+ ส่วนที่เขียนไว้ใน httaccess.txt AddDefaultCharset ให้เอาออก
(บางคนอาจจะท้วงว่า ...ใน joomla มันมี META Tag charset อยู่แล้ว... ผมก็จะบอกว่า.. บางครั้งมันก็ใช้ไม่ได้ผลดอก คือไม่เพิยงพอที่จะสั่งให้ Browser มัน Auto Encoding )


อันอื่น ๆ ค่อยว่ากันหลังคุณ Upload ขึ้นไปไว้บน host จริง
ตอบอื่น ๆ
+ php5 ของคุณเป็น module หนึ่งของ Apache แล้ว
+ Apache คุณไม่สามารถใช้งาน mod_rewrite ได้ เพราะมี comment อยู่ข้างหน้า
+ ถ้า uncomment mod_rewrite ออก ก็ไม่แน่ใจว่าจะ Start Apache ขึ้นหรือเปล่า เพราะ มันควรจะเป็น mod_rewrite.dll  ไม่ใช่ mod_rewrite.so
+ mod_*.dll จะ share library ของ windows ส่วน mod_*.so จะเป็น share libray ของ Linux
+ Apache คุณไม่มี mod_deflate

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 17, 2007 2:01 pm
by araregodji
header( 'Content-Type:text/html; charset=utf-8');

เพิ่มไปแล้วครับ  ที่ index.php พอดีมันอยู่บรรทัด 254 header( 'Pragma: no-cache' ); ไม่น่าจะมีปัญหา เพราะมีอยู่ที่เดียวใน index.php

แต่มันก็ยังเป็น ยึกยือ อยู่ดี ถ้าไม่ใส่ AddDefaultCharset utf-8  ใน httpd.conf

ก็คิดว่าเอาไว้ก่อน  แล้วไปแก้ปัญหา ตอนอัพ host จริงอีกที  :D

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 17, 2007 2:23 pm
by i_siam_guy
ผมก็จะเริ่มงง... ว่าส่ง header ออกไปแล้วทำมัย..ไม่ได้
ข้อสังเกตุ...ผมก็คือ
1. มันเป็น Windows OS
2. คุณใช้ php5 (น่าจะลดลงมาใช้ php4 ... เพราะ joomla  มันเขียนบน php4  อันนี้ผมไม่ทราบว่าจะทำให้เกิดปัญหาอะไรหรือเปล่า แต่ อะไรนิด ๆ หน่อย ๆ ...ในการเขียน Script อาจทำให้เกิด Bug ขึ้นได้ ... และคำว่า อะไรนิด ๆ หน่อย ๆ ...ก็เสียเวลาแก้ปัญหาไปหลายวัน หรือบางทีอาจจะหลายอาทิตย์ก็ได้ )

ผมว่า ..upload จริง แล้วมาว่ากันอีกที ... เพราะเดียว Enviroment มันเปลียน ปัญหาบางอย่างก็หมดไป ปัญหาใหม่ ๆ อาจเกิดขึ้นมาแทน

ok ok

เอ่อออ... แล้วแต่ว่า เจ้าของกระทู้ ...อยู่ไหนหว่า

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 24, 2007 12:21 am
by taotoon
เท่าที่ผมทราบมา การจะใช้ UTF-8 คุณต้องทำตอนสร้าง database ใหม่ๆเลยครับ ต้องกำหนดไว้ตอนสร้าง database
จะมาเปลี่ยนทีหลังไม่ได้ กล่าวคือจะแปลงไปแปลงมาไม่ได้  ผมยังหาโปรแกรมที่สามารถแปลงได้ยังไม่เจอเลยครับ ท่านใดทราบวิธีโปรดบอกด้วยครับ

ผมคิดว่า 

1. การจะใช้ระบบ UTF-8 เหมาะสำหรับระบบที่ไม่ต้องการแก้ไข source code หรือ text file ทุกอย่างที่เป็น UTF-8 ควรจะอยู่ใน database ทั้งหมด
2. ระบบ UTF-8 ทำให้ใช้พวก AJAX ได้ง่ายดี 
3. source code และ text file ต้อง save เป็น UTF-8 ผมว่ายุ่งยาก กรณีส่งให้คนอื่นดูหรือแก้ไข เช่น ส่งทาง email หรือ icq  เค้าอาจจะดูไม่ได้ แก้ไขลำบาก หรือ save มาผิดๆ อันนี้ผมไม่ค่อยแน่ใจเท่าไหร่

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 24, 2007 2:40 am
by i_siam_guy
แปลง Encoding ใน Database ..
เคยทำแต่ใน Postgres ... ง่ายนิดเดียว แค่ Dump "โครงสร้าง" และ "ข้อมูล" ออกมา แล้วสร้าง "ฐานข้อมูล" ใหม่ พร้อมระบุ Encoding ที่ต้องการ แล้วก็ restore "โครงสร้าง" และ "ข้อมูล" กลับเข้าไป ... มันจะ Auto Convert Encoding ให้เลย

ถ้าทำใน MySQL (เคยอ่านในคู่มือ..) ทำอย่างเดียวกันกับข้างบน แต่ ใน "โครงสร้าง" ที่ Dump ออกมา ให้ไปลบ Encoding ออก (ที่ ระบุตอนสร้าง Table )  ... ให้ใช้ค่า Default ของ Database แทน แล้วค่อย restore กลับเข้าไป

ที่ต้อง Dump แยก "โครงสร้าง" และ "ข้อมูล" ออกจากกัน ก็เพราะ มันจะได้ File ที่ใหญ่มาก ทำให้เวลาเปิด File สำหรับแก้ไข จะช้า หรือแทบทำไม่ได้เลย ...

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 24, 2007 5:01 pm
by taotoon
ขอบคุณมากครับ ว่าแต่มีเวปสอนพร้อมตัวอย่างไหมครับ ผมใช้เป็นแค่ dump กับ restore สำหรับ backup ใน linux

เคยไปถามพวก vbulletin ก็ไม่มีใครรู้ พวกเค้าต้องการแปลงเป็น UTF-8 มาก เนื่องจากต้องการใช้ AJAX

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 24, 2007 5:12 pm
by joom2
taotoon wrote: ขอบคุณมากครับ ว่าแต่มีเวปสอนพร้อมตัวอย่างไหมครับ ผมใช้เป็นแค่ dump กับ restore สำหรับ backup ใน linux

เคยไปถามพวก vbulletin ก็ไม่มีใครรู้ พวกเค้าต้องการแปลงเป็น UTF-8 มาก เนื่องจากต้องการใช้ AJAX

1. dump เป็นคอมม่าหรือ .sql ก็ได้ จะได้เป็นไฟล์
2. ใช้ editor เปิดไฟล์นั้น แล้วทำการบันทึกเป็นแบบ utf-8
3. ให้ restore ไฟล์
ปล.ระวังเรื่องของความกว้างของฟิลด์ด้วย เพราะแปลงแล้วจะได้ข้อมูลที่ใหญ่ขึ้น 1-4 เท่า

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sat Mar 24, 2007 5:45 pm
by i_siam_guy
Convert tis-620 to utf-8 in MySQL (สำหรับ linux user เท่านั้น)

ต้นฉบับ : http://gentoo-wiki.com/TIP_Convert_lati ... 8_in_MySQL

อธิบาย ตามแบบฉบับผม

(cd เข้าไปที่ home dir ของคุณก่อน)
1. Dump (db, tis-620) ออกมา ... อย่างมี option
$ mysqldump -h *hostname* --user=*dbuser* -p --default-character-set=tis-620 -c  --insert-ignore --skip-set-charset dbname > dump.sql
2. แปลง Charset ที่ dump ออกมาด้วยโปรแกรมสำหรับแปลง Charset,  iconv (ใน linux) เป็น utf-8
$ iconv -f TIS-620 -t UTF-8 dump.sql > dump_utf8.sql
3. Drop and Create New (หรือจะสร้าง DB, utf-8 อันใหม่ขึ้นมาก็ได้ ... ไม่ต้อง Drop อันเดิม ... สำหรับทดลองก่อน)
$ mysql --user=*dbuser* -p --execute="DROP DATABASE dbname;
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"

4. Import Dump
$ mysql --user=*dbuser* --max_allowed_packet=16M -p --default-character-set=utf8 dbname < dump_utf8.sql

วิธีนี้จะดีคือ.. คุณไม่ต้องไปเปิด file เลย ... และ file จะใหญ่เท่าไหร่ก็ได้...

OK มัย...

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Sun Mar 25, 2007 2:29 pm
by namdang
ช่วยหน่อยครับ
ผมเป็นโฮสเช่าครับ
.htaccess ช่วยไม่ได้ครับ (มันอ่านไฟล์ .htaccess ครับ ลองตาม #11 ขึ้น error)
ผมทำตามคุณ i_siam_guy  #15 แล้ว
หน้าแรกเป็นไทยแล้ว  ส่วนของ admin ไม่ได้ครับ รวมทั้ง Virtuemart ด้วยครับ

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Mon Mar 26, 2007 4:03 am
by Jin
vbulletin ของจีนไม่เห็นต้องเซฟเป็น utf-8 ทุกไฟล์มันมันใช้ utf-8 ไม่มีปัญหาล่ะ - - (เห็นมี code เพิ่มในส่วนของ mbsting ไรนี่อะ)
joomla 1.5 ไม่ไม่เห็นเซฟเลยอะ ไม่เข้าใจ งงมาก ช่วยอธิบายหน่อยครับ

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Mon Mar 26, 2007 4:03 am
by i_siam_guy
หน้า admin

set Default Charset to utf-8 (หน้า admin)
1. เปิด /joomla_root_dir/administrator/index2.php
2. หา session_start(); (บรรทัดที่ 30)
3. หลัง session_start(); เพิ่ม header( 'Content-Type:text/html; charset=utf-8');
4. Save & Upload

แก้ปัญหาภาษาไทย ใน Textarea (หน้า admin)
1. เปิด /joomla_root_dir/administrator/templates/joomla_admin/css/template_css.css
2. เพิ่ม style นี้ลงไป

input, textarea, select {
font-size: 14px;
font-family:Arial, Helvetica, sans-serif;
}


3. Save & Upload

แก้ปัญหาภาษาไทย Label ใน VirtueMart หน้า Admin
1. เปิด File /joomla_root_dir/administrator/components/com_virtuemart/languages/thai.php
2. เปิด File ใหม่ ระบุใช้ enconding เป็น utf-8
3. copy all ใน ข้อ 1 ไปใส่ใน ข้อ 2
4. Save & Upload File ข้อ 2 ไปใช้แทน ข้อ 1



แล้ว.. ข้างบนนี้ .. จะให้อธิบายอะไร ... งงมากเหมือนกัน

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Mon Mar 26, 2007 9:15 pm
by Jin
ก็ที่ rep บนๆ เค้าบอกให้เซฟไฟล์เป็น utf-8 ด้วยอะครับ แต่ joomla 1.5 มันเซฟเป็น ansi อะ แต่มันก็ยังใช้ utf-8 ได้แบบไม่มีปัญหาอะ ผมเลยงงว่ามันจำเป็นต้องเซฟด้วยหรอ

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Tue Mar 27, 2007 3:51 am
by i_siam_guy
ansi นี้หมายถึง ascii นี้หรือเปล่า
(คือถ้ามี file ประเภท ansi จริง ๆ ... ผมยอมรับว่า ไม่รู้จักครับ  ???)

คือถ้าคุณเปิด flie เพื่อแก้ไข soucecode แล้วจะ save เป็น ascii หรือ utf-8 ก็ไม่มีผลแตกต่างกันครับ เพราะ
+ ภาษาที่คุณใช้เขียน code เป็นภาษาอังกฤษ
+ charecter map ของชุดตัวอักษรภาษาอังกฤษ ในตาราง ascii กับ utf-8 เหมือนกันสนิทครับ... อยู่ประมาณช่วงที่ 33-120 (ฐาน 10)

ถ้าคุณแก้ไข File ภาษาใน เช่น thai.php แล้ว save ผิด (จากที่ระบุ charset ให้ browser) มันก็จะแสดงออกทาง Browser อย่างเห็นได้ชัด...
+ charecter map ของชุดตัวอักษรภาษาไทย ในตาราง ascii (tis-620,windows-874) กับ utf-8 อยู่กันคนละช่วงเลยครับ ใน ascii จะอยู่ประมาณ 140 - 200  ส่วน utf-8 อยู่ไหน ... ไม่ทราบเหมือนกัน เพราะมันเยอะ.. ขึ้เกียจนับ ดูเอาใน charector map ของ windows เอาก็แล้วกัน

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Tue Mar 27, 2007 3:57 am
by Jin
ครับ ansi ผมก็ว่าตามมันอะ ไฟล์มันขึ้นในโปรแกรมงั้นจริงๆ - -

Re: ต้องการเซ็ตเว็บให้ default encoding เป็น utf-8 ต้องทำอย่า&#

Posted: Wed Mar 28, 2007 2:51 am
by namdang
ขอบคุณ คุณ i_siam_guy มากครับ
ผมใช้ Joomla_Laithai_1.0.12_utf8_eCommerceEdition_VM-1.0.9
ผมแก้แค่
1.set Default Charset to utf-8 (หน้า admin)
2.แก้ปัญหาภาษาไทย ใน Textarea (หน้า admin)
แล้ว VirtueMart ก็เป็นภาษาไทย อ่านออกได้เลย

ขอบคุณครับ