Page 1 of 2

ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8 -&g

Posted: Sat Mar 31, 2007 1:32 pm
by smapan
???
ผมใช้
1.Joomla_1.0.12LaiThaiUTF8-Stable-Full_Package
2.DB mySQL encode UTF-8
3.save all content in UTF-8
4.เมล์ไคล์เอ้น เว็บเบส คือ Horde ที่มีปัญหา
5.เมล์ไคล์เอ้น เว็บเบส คือ Hotmail.com ที่มีปัญหา (สำคัญมากๆ)
6.เมล์ไคล์เอ้น เว็บเบส คือ Mail.coml ที่มีปัญหา

สถานการณ์ที่เกิดขึ้น
สมัครสมาชิกใช้เมล์ต่างๆกันคือ Gmail.com/Hotmail.com/Mail.com/mycompany.co.th

ผลคือ
Gmail.com ผ่านปรกติ encode UTF-8 auto
Hotmail.com encode ยังไงก็ไม่ได้ เด้งกลับมาเป็น window(thai) ตลอด อ่านไม่ออก
Mail.com ต้องคลิก encode UTF-8 ถึงจะอ่านออก แต่ข้อความในเมล์บ้อก+อื่นๆ เละหมดเลย
mycompany.co.th เหมือน Mail.com ต้องคลิก encode UTF-8 ถึงจะอ่านออก แต่ข้อความในเมล์บ้อก+อื่นๆ เละหมดเลย

**อีกนิด
- แต่พอส่งไปที่ เมล์บริษัท มันก็บอกว่า ข้อความนี้ถูกเขียนขึ้นด้วยชุดอักขระที่แตกต่างจากที่คุณใช้ หากการแสดงผลในหน้าจอนี้ไม่ถูกต้อง ให้คลิกที่นี่ เพื่อแสดงผลในหน้าต่างใหม่ 
- แล้วตรงคลิกที่นี่ มันก็ลิ้งไปยัง หน้าต่างใหม่ ผลคือ อ่านออก

นี่คือ ผลตอนแรกตอนยังไม่เปิดอ่าน พอดูเอนโค้ดมันในหน้าเมล์ (ของโปรแกรม) คือ Tis-620
เธชเธกเธฒเธ�เธดเธ�เธ�เธทเน�เธญ golf เธกเธตเธญเธตเน€เธกเธฅเน�เน�เธ�เธ�เธฒเธฃเธชเธกเธฑเธ�เธฃเน€เธ�เน�เธ�เธชเธกเธฒเธ�เธดเธ�

ส่วน HOTMAIL.com นี่ยังไก็ เอนโค้ดเป็นภาษาไทยไม่ได้ซะที
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
แนวทางการแก้ไขปัญหา
1.ลบทิ้ง ลงใหม่ เลิกใช้มันซะ utf-8 เซงแล้ว ลงคอมโพเน้นใหม่ ปรับ จูนใหม่ หมด ลงดาต้าเบสใหม่ ใช้เวลาอีก 1 อาทิตย์ <<มาขอความช่วยเหลือจากท่านๆทั้งหลายนี่แหละ
2.ยกเลิกการส่งเมล์ ออกไปเป็น utf-8 ชั้วคราวก่อนที่ชาวโลกเค้าจะเปลี่ยนมาใช้กันครับ อาจเอนโค้ดเป็น Tis-620 ก่อน <<ผมไม่รู้จะทำเช่นไร
3.ส่งเมล์เป้นภาษาอังกฤษมันซะเลย << แก้ปัญหาที่ปลายเหตุจัด แต่เป้นทางเลือกสำหรับคนสิ้นคิดเช่นผม

...... ขอความกรุณาแนะทางสว่างด้วย
...... ต้องการขอข้อมูลอะไรเพิ่มเติม รึว่าสงสัยว่าเมล์ืที่ได้รับมันหน้าตายังไง ไปลองสมัคร แล้วดูเมล์ที่ตอบกลับได้ที่
http://www.kapmoo.com/index.php?option= ... k=register

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Sat Mar 31, 2007 2:13 pm
by smapan
ใน class.phpmailer.php
line 36
var $CharSet = "utf-8";

ถ้าเปลี่ยนไปเป็น tis-620 จะได้มั้ยครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Sun Apr 01, 2007 7:37 am
by toonarmythai
ตอนนี้ยังไงส่วนตัวผมเองก็เดินบนเส้นทาง TIS-620 ตลอดครับ  ตราบใดที่ยังเป็น Joomala 1.0.x  ยังไม่เจอปัญหาอะไรที่กวนใจเลย อย่าลืมว่า Tis-620(iso-8859-11) ก็ยังอยู่ในโครงสร้างเดียวกันกับ iso-8859-1 อยู่  (1 char.. = 1 byte)  ถ้าทำเป็น Utf-8 (multi byte)มันไม่ใช่แค่ตรง ฐานข้อมูล แก้เอนโค๊ดดิ้ง
เป็นมันจะใช้ได้เลยแบบไม่มีปัญหา อย่าลืมว่าฟังก์ชั่นภายในเกี่ยวกับการ เรียงอันดับ การค้นหา อะไรอีกมากมาย...(แม้กระทั่งฟังก์ชั่นใน PHP ยังต้องปรับกันวุ่นเลยครับ ถ้าเขียนเว็บเป็น Utf-8) แต่คนใช้ Utf-8 อย่าคิดมากตามผมนะ ผมประเภทเป็ดเพิ่งหัดเดิน...

และ tis-620 กับ windows-874 เป็นไทยเหมือนกันแต่จะไม่เหมือนกันซะทีเดียวครับ windows-874 จะมีชุดอักขระมากว่า tis-620
แนะนำให้ใช้ tis-620

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Sun Apr 01, 2007 5:05 pm
by smapan
แล้วถ้าจะแก้ปัญหาที่ปลายเหตุ(ชั่วคราวก่อนระบบ utf-8 จะใช้กันแพร่หลาย)
คือ class.phpmailer.php

จะสามารถแปลงสายอักขระ กลางอากาศ(on the fly) จาก utf-8 ->tis-620 ได้มั้ยครับ

อ้อ
วันนี้ผมลองแก้ปัญหาด้วยแนวทางของผมเอง ดังนี้ครับ(แต่ก็ยังไม่ได้ 100%)

ท้าวความถึงสาเหตุที่พบ
เนื่องจากเวลาส่งเมล์มันจะอ่านภาษาไทย ไม่ออก เพราะ ค่าภาษาไทย จริงๆไม่ได้ gen จาก phpmailer แต่เอามาจาก thai.php ของ joomla
แล้ว ไฟล์ thai.php ก็ถูกเซพเป้น utf-8 แล้วไม่มีทางที่เอนโค้ด tis-620 จะอ่านมันออกแน่นอน

ผมจึงทำดังนี้ครับ (คิดว่าดันทุรังได้พอตัวครับ)
1.แยก คำสั่ง ที่ pre define ออกเป็น 2 ส่วน คือส่วนของระบบ กับส่วนในจดหมาย คือ

Code: Select all

DEFINE('_ERROR_PASS','ขออภัย, ไม่พบสมาชิกรายนี้');
DEFINE('_NEWPASS_MSG','สมาชิกชื่อ $checkusername มีอีเมล์ในการสมัครเป็นสมาชิก\n'
.'ของเว็บไซต์ $mosConfig_live_site มีการร้องขอให้ส่งรหัสผ่านใหม่ให้\n\n'
.' รหัสใหม่ของคุณคือ: $newpass\n\nหากคุณไม่ได้ร้องขอให้ระบบจัดส่งอีเมล์นี้มาให้\ไม่ต้องเป็นกังวล.'
.' เพราะไม่มีคนอื่นทราบ รหัสผ่านจะถูกส่งมาทางอีเมล์ของคุณเท่านั้น. ถ้าอันนี้เกิดจากความผิดพลาดเข้าสู่ระบบ'
.' ของรหัสผ่านใหม่ของคุณ จากนั้นคุณสามารถเปลี่ยนรหัสผ่านตามที่คุณต้องการได้เอง.');
DEFINE('_SEND_SUB','รายละเอียดสมาชิกใหม่ %s ใน %s');
DEFINE('_USEND_MSG_ACTIVATE', 'สวัสดีคุณ %s,

ขอบคุณสำหรับสมัครสมาชิกที่ %s. บัญชีของคุณถูกสร้างแล้ว และคุณจะต้องทำการยืนยันตัวคุณ(Activateก)ก่อน
จึงจะใช้ได้  หากต้องการยืนยัน คลิก link ข้างล่างนี้หรือ คัดลอกแล้วไปวางในช่อง address ในเบราซ์เซอร์ของคุณ:
%s

หลังจากยืนยันแล้วคุณสามารถเข้าสู่ระบบ %s โดยใช้ ชื่อผู้ใช้ และรหัสผ่าน ตามนี้:

ชื่อผู้ใช้ - %s
รหัสผ่าน - %s');
DEFINE('_USEND_MSG', "สวัสดีคุณ %s,

ขอบคุณสำหรับสมัครสมาชิกที่ %s.

คุณสามารถเข้าสู่ระบบได้เดี๋ยวนี้ เข้าใช้งาน %s ด้วย ชื่อผู้ใช้ และ รหัสผ่าน ที่คุณได้ลงทะเบียนไว้ ");
DEFINE('_USEND_MSG_NOPASS','สวัสดีคุณ $name,\n\n คุณได้เพิ่มเป็นสมาชิกในเว็บไซต์ $mosConfig_live_site.\n'
.'คุณสามารถเข้าสู่ระบบเว็บไซต์  $mosConfig_live_site ด้วย ชื่อผู้ใช้ และ รหัสผ่าน ที่คุณได้ลงทะเบียนไว้\n\n'
.'กรุณาอย่าตอบกลับข้อความนี้ เพราะเป็นข้อความอัตโนมัติจากระบบและมีวัตถุประสงค์เพื่อส่งข่าวสารเท่านั้น\n');
DEFINE('_ASEND_MSG','สวัสดีคุณ %s,

มีสมาชิกใหม่ลงทะเบียนมายัง %s.
อีเมล์นี้มีรายละเอียดของสมาชิก:

ชื่อ - %s
อีเมล์ - %s
ชื่อผู้ใช้ - %s

กรุณาอย่าตอบกลับข้อความนี้ เพราะเป็นข้อความอัตโนมัติจากระบบและมีวัตถุประสงค์เพื่อส่งข่าวสารเท่านั้น');
?>
ส่วนอื่นๆของที่เหลือจะเป็นของระบบผมจะไม่พูดถึง (อ้อที่เอามานี่จะเกี่ยวกัยการ กู้พาสเวอร์ดคืน ส่วนที่ส่งเมล์อื่นๆยังไม่ได้ลองนะครับ)

นำข้อความดังกล่าวข้างต้นไปเซพใน format - ansi (แบบทั่วๆไปนั่นแหละครับ) ในชื่อไฟล์ thaimail.php ส่วนไฟล์ thai.php ก็เซพเท่าที่เหลือเป็น utf-8 เหมือนเดิม

2.include ไฟล์ที่สร้างขึ้นใหม่ใน index.php ของระบบ ของผมบรรทัดที่ 140
ต่อจาก

Code: Select all

include_once( $mosConfig_absolute_path .'/language/' . $mosConfig_lang . '.php' );
เพิ่มเป็น

Code: Select all

include_once( $mosConfig_absolute_path .'/language/' . $mosConfig_lang . '.php' );
include_once( $mosConfig_absolute_path .'/language/' . $mosConfig_lang . 'mail.php' );
3.ไปแก้ บรรทัด 36 ในไฟล์ class.phpmailer.php

Code: Select all

var $CharSet	= "utf-8";
เป็น

Code: Select all

var $CharSet	= "iso-8859-11";
พอแก้เสร็จก็พอไปได้ครับ เละบ้าง แต่สำหรับเมล์บางที่มันจะแสดงผลเป็นภาษาไทยได่เลย
ใครพอจะต่อยอดไอเดียนี้ คิดว่าพอไหวมั้ยครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Sun Apr 01, 2007 5:22 pm
by taotoon
เราก็ชอบ windows-874  ไม่มีปัญหา
database เป็น ISO-8XXX-1
สามารถใช้ AJAX ได้ด้วย

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Mon Apr 02, 2007 2:24 pm
by smapan
taotoon wrote: เราก็ชอบ windows-874  ไม่มีปัญหา
database เป็น ISO-8XXX-1
สามารถใช้ AJAX ได้ด้วย
สำหรับปัญหาที่ผมเจอไม่สวนใจครับว่า ajax จะได้หรือไม่ได้เพราะติดอยู่ที่ class.phpmailer.php อยู่ตัวเดียวเองครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Tue Apr 03, 2007 4:39 am
by i_siam_guy
smapan ... แก้ปัญหาใกล้ถูกแล้ว ...ใกล้ถูกแล้ว ... คือแปลง mail เป็น tis-620 (on the fly) ซะเลย...

แต่ทำไมไปแก้หลายที่จัง... แก้ที่เดียวก็พอ ใน class.phpmailer.php

วิธีแก้ปัญหา ส่ง mail ให้อ่านภาษาไทยออก

1. เปิด class.phpmailer.php
2. หา function send() ; (ประมาณบรรทัดที่ 348)
3. หลัง fuction send(); เพิ่ม code นี่ลงไป


$SendCharSet = "tis-620";

if (strtolower($SendCharSet) != strtolower($this->CharSet))
{
  $this->Encoding = "quoted-printable";
  $this->Subject = iconv($this->CharSet,$SendCharSet,$this->Subject);
  $this->Body = iconv($this->CharSet,$SendCharSet,$this->Body);
  $this->AltBody = iconv($this->CharSet,$SendCharSet,$this->AltBody);
  $this->From = iconv($this->CharSet,$SendCharSet,$this->From);
  $this->FromName = iconv($this->CharSet,$SendCharSet,$this->FromName);
  $this->CharSet = $SendCharSet ;
}


4. Save & Upload

"ถ้ามันมีประตูออกอยู่ช่องเดียว ... เราก็ไปดักตีหัวมันที่ประตูซะ... "

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Tue Apr 03, 2007 2:59 pm
by smapan
โอ ง่ายแค่นี้เองเหรอครับ  ???
เด๋วขอลองก่อน หามานานแล้ว

ตื่นตันใจจัง  :'(

ขอบคุณนะครับที่สนใจปัญหาของผม

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Wed Apr 04, 2007 4:33 pm
by smapan
สำเร็จแล้วครับ สามารถ on the fly encoding  ได้สำเร็จ
UTF-8 -> Tis-620 สำเร็จแล้วครับ ขอบคุณ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Thu Apr 05, 2007 5:38 am
by toonarmythai
ผู้ดูแลบอร์ดเอากระทู้นี้ไปปักหมุดด่วน!!!!!!!!!!!!!..... :D  / ขอบคุณ i_siam_guy และเจ้าของคำถามด้วยอีกคนครับ เยี่ยมยอด....

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับก

Posted: Fri May 18, 2007 3:23 pm
by domainxhosting
i_siam_guy wrote: smapan ... แก้ปัญหาใกล้ถูกแล้ว ...ใกล้ถูกแล้ว ... คือแปลง mail เป็น tis-620 (on the fly) ซะเลย...

แต่ทำไมไปแก้หลายที่จัง... แก้ที่เดียวก็พอ ใน class.phpmailer.php

วิธีแก้ปัญหา ส่ง mail ให้อ่านภาษาไทยออก

1. เปิด class.phpmailer.php
2. หา function send() ; (ประมาณบรรทัดที่ 348)
3. หลัง fuction send(); เพิ่ม code นี่ลงไป


$SendCharSet = "tis-620";

if (strtolower($SendCharSet) != strtolower($this->CharSet))
{
  $this->Encoding = "quoted-printable";
  $this->Subject = iconv($this->CharSet,$SendCharSet,$this->Subject);
  $this->Body = iconv($this->CharSet,$SendCharSet,$this->Body);
  $this->AltBody = iconv($this->CharSet,$SendCharSet,$this->AltBody);
  $this->From = iconv($this->CharSet,$SendCharSet,$this->From);
  $this->FromName = iconv($this->CharSet,$SendCharSet,$this->FromName);
  $this->CharSet = $SendCharSet ;
}


4. Save & Upload

"ถ้ามันมีประตูออกอยู่ช่องเดียว ... เราก็ไปดักตีหัวมันที่ประตูซะ... "
เย้ๆๆ
ใช้งานได้แล้วครับ  ดีจิงๆเลยครับ
ขอบคุณครับ
http://www.DOMAINxHOSTING.com

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Fri May 18, 2007 5:44 pm
by smapan
ยินดีด้วยครับ เว็บของคุณเริ่มใกล้จะสมบูรณ์แล้วครับ  :D

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Sun May 20, 2007 5:04 am
by Luckycookie
ทำไมผมลองแก้ตามที่บอกแล้ว พอกดส่งข้อความ
มันขึ้นว่า Fatal error: Call to undefined function: iconv()
ต้องทำอย่างไรอ่ะครับ  ???

ขอบคุณครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Sun May 20, 2007 6:54 am
by i_siam_guy
+ ถ้าไป Linux ก็ต้อง compile php ใหม่ ด้วย option "-with-iconv"
+ ถ้าเป็น windows ก็น่าจะดูใน php.ini ตรง extension มี iconv.dll หรือเปล่า ให้ลบ comment out ออกเพื่อนำมาใช้งาน

+ ต้องดู version ของ php ด้วยนะว่ามันมี support หรือเปล่า?

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Sun May 20, 2007 1:09 pm
by Luckycookie
i_siam_guy wrote: + ถ้าไป Linux ก็ต้อง compile php ใหม่ ด้วย option "-with-iconv"
+ ถ้าเป็น windows ก็น่าจะดูใน php.ini ตรง extension มี iconv.dll หรือเปล่า ให้ลบ comment out ออกเพื่อนำมาใช้งาน

+ ต้องดู version ของ php ด้วยนะว่ามันมี support หรือเปล่า?
คือว่าผมเป็นมือใหม่อยู่น่ะครับ  :)
รบกวนช่วยบอกรายละเอียดเพิ่มหน่อยได้ไหมครับ
็Host ที่ใช้เป็น Linux ครับ
วิธี compile php ใหม่ ด้วย option "-with-iconv" ทำยังไงครับ ?

ขอบคุณครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Sun May 20, 2007 3:58 pm
by i_siam_guy
ก่อนอื่น ... ท่านเป็นเจ้าของ Host หรือเปล่า... ถ้าเป็นเจ้าของ Host ก็ทำได้ อ่านต่อได้
ถ้าไม่ใช่... จบข่าว หรือแจ้งความประสงค์ของท่านให้ admin ทราบ เพื่อให้เค้าติดตั้งให้ท่าน

ก่อน compile php ตรวจสอบก่อนว่า linux ของท่านมี iconv หรือเปล่า... (ลองพิมพ์ iconv --help ไปที่ command line เลย)

ถ้าไม่มีก็ ทำการติดตั้ง iconv ก่อน
1. download -> http://www.gnu.org/software/libiconv/#downloading ไปไว้ที่ /tmp
2. แตก *.tar.gz ออกมา
3. cd เข้าไปใน directory ที่เก็บ configure file ไว้
4. พิมพ์ ./configure
5. พิมพ์ make
6. พิมพ์ make install

compile php ... เท่าที่จำได้ ... (ของอย่างนี้ นาน ๆ ทำที จริงมัย)

1. download php source code (*.tar.gz) มา เก็บไว้ใน /tmp ก่อน จากนั้นทำการแตก file ออกมา
2. จากนั้นเข้าไปยัง directory ที่เก็บ configure file ไว้
3. อยากรู้ว่ามี option อะไรบ้าง ให้พิมพ์ ./configure -help (หรือ --help จำไม่ค่อยได้ มันต้องออกมาบ้างซิน่า)
4. อันนี้เป็น Tip : ให้สร้าง text file ขึ้นมาใหม่ แล้วพิมพ์ config ที่ชอบ ๆ ลงไป ตามรูปแบบที่พิมพ์สั่ง config php ปกติ เช่น ./configure -prefix="/usr/local/php-4.4.x" -with-* .... .... ลงไป สมมุติให้ชื่อว่า my_config  (ห้ามเคาะขึ้นบรรทัดใหม่) อันนี้เราจะเก็บไว้ทำ config เพราะ option มันเยอะ ขี้เกียจพิมพ์ใหม่ เผลอ ๆ พิมพ์ผิดอีกตะหาก ถ้า config ไม่ผ่านก็จะได้กลับมาแก้ไขที่ file นี้
+ กำหนด Prefix ให้มันด้วย ว่าจะเอาไปติดตั้งที่ directory ไหน ... จะได้ไม่ทับ php ของเดิม
5. อย่าลืม chmod 777 ให้ my_config file จะได้ run ได้
6. run config php ของเรา โดยพิมพ์ ./my_config ( "./" หมายความว่า ณ directory ที่ฉันอยู่นี้หล่ะ) แทนที่จะพิมพ์ ./configure ... ลงไปตรง ๆ ที่ command line
+ ขั้นตอนนี้ยังไม่ได้ทำการติดตั้ง เพียงแต่ทำการตรวจดูความพร้อมของพวก option ต่าง ๆ ที่ใส่เข้าไป
7. จากนั้น ก็อ่านดู หน่อยว่ามันผ่าน หรือไม่ผ่าน เพราะอะไร แล้วทำการแก้ไข
8. ถ้าผ่าน config แล้วก็ compile มันซะ แล้วทำการติดตั้งด้วยคำสั่ง (make และ make install)
9. ถ้า make ไม่ผ่าน ก็ทำการ make clean เพื่อ clear ไอ้ที่ compile ไปแล้ว

อ่านอย่างละเอีดยที่นี้ -> http://au3.php.net/manual/en/install.unix.apache2.php

...โชคดี

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Mon May 21, 2007 3:54 am
by Luckycookie
ขอบคุณมากนะครับ  คุณ i_siam_guy  :)

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Tue May 22, 2007 1:28 am
by smapan
:) โห Linux command อ่านๆดูแล้้วน่าสนุกเหมือนตอนที่ใช้ unix+dos เลยครับไม่ได้จับพวก command มานานละรู้สึกตื่นเต้น  :)จังครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Wed Jun 13, 2007 8:51 am
by oatvr
ขอขอบคุณ คุณ i_siam_guy ด้วยคนครับ แก้ปัญได้อีกแล้ว  8)

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Wed Jul 11, 2007 6:09 pm
by rming
เยี่ยมยอดไปเลยครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Thu Jul 26, 2007 6:54 am
by $@k
ขอบคุณคร้าบ ค้นหามานาน ตอนนี้แก้ไขได้แล้ว  ;D

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Sun Nov 11, 2007 5:39 am
by nar4
ช่วยอธิบายหน่อยนะครับ ว่ามันแทรกตรงไหน แทรกลงมาอีกบบรรทัด หรือว่าแทรกข้างหลัง  fuction send(); เลยคือผมลองทำดูแล้วมันไม่ได้ครับ

    function Send() {
        $header = "";
        $body = "";
        $result = true;

        if((count($this->to) + count($this->cc) + count($this->bcc)) SetError($this->Lang("provide_address"));
            return false;

อย่างนี้ละครับผมต้องเริ่มแทรกจากบบรทัดไหน รบกวนด้วยนะครับ พอดีทำไม่ค่อยเป็นไม่ค่อยรู้เรื่องเลย มือใหม่ครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Sun Nov 11, 2007 6:26 am
by domainxhosting
คือแทรกที่หลัง function Send() {  เลยครับ
จะได้ผลลัพธ์ออกมาเป็น

Code: Select all

function Send() {
		$SendCharSet = "tis-620";
		if (strtolower($SendCharSet) != strtolower($this->CharSet))
		{
		  $this->Encoding = "quoted-printable";
		  $this->Subject = iconv($this->CharSet,$SendCharSet,$this->Subject);
		  $this->Body = iconv($this->CharSet,$SendCharSet,$this->Body);
		  $this->AltBody = iconv($this->CharSet,$SendCharSet,$this->AltBody);
		  $this->From = iconv($this->CharSet,$SendCharSet,$this->From);
		  $this->FromName = iconv($this->CharSet,$SendCharSet,$this->FromName);
		  $this->CharSet = $SendCharSet ;
		}
.......
......
......
ครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Thu Jan 03, 2008 1:36 pm
by like_a_pinion
ขอถามเพิ่มเติมนะครับ

ผมใช้วิธีที่คุณ i_siam_guy บอกวิธี
ใช้ได้ผลกับ ตัวเมลของ joomla (สมัครสมาชิก)

และผมใช้ Virtuemart ที่เมลจะมีปัญหาเรื่องภาษาเหมือนกัน
เช่น ตอนส่งใบสั่งซื้อเป็นภาษาไทย ไปทางเมล
ผมจึงใช้วิธีเดี่ยวกันนี้กับ
/administrator/components/com_virtuemart/classes/phpmailer/class.phpmailer.php
แต่ทำให้ ตัวใบสั่งซื้อในเมลหายไป เหลือแต่โลโก้ของร้านแทน

ขอคำแนะนำด้วยครับ
ขอบคุณครับ






 

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8

Posted: Thu Jan 03, 2008 2:06 pm
by i_siam_guy
แหม ...นึกว่าจะไม่มีคนถามซะแล้ว เรื่องนี้...

เอาเป็นว่า ...ผมก็เป็นแบบเดียวกันกับที่ท่าน like_a_pinion เป็นครับ

1. น่าจะเกิดจากตัว File ภาษาไทยของ Virtuemart เอง
2. และเรื่อง Function ที่ใช้ในการตัดคำของ Virtuemart ครับ

มันเลย 'ตัดคำ' หายไปหมดเลย...

ตอนนี้ยังไม่มีเวลาไปไล่ source code ดู เลยยังไม่มี solution มาบอกกันครับ..

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8 -&g

Posted: Sat Mar 08, 2008 3:27 pm
by arunsiam
ลองดูแบบนี้บ้างนะ อาจจะช่วยได้

ใน template ที่คุณเลือก index.php ไฟล์ ลองแก้จาก
<meta http-equiv="Content-Type" content="text/html;><?php echo _ISO; ?>" />

เป็น
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />

คือเอาเครื่องหมาย > ออกไปอันหนึ่ง

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8 -&g

Posted: Tue May 13, 2008 2:44 pm
by baby2kids
หาตั้งนาน

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8 -&g

Posted: Sat Jun 14, 2008 4:10 pm
by yongyee
arunsiam wrote:ลองดูแบบนี้บ้างนะ อาจจะช่วยได้

ใน template ที่คุณเลือก index.php ไฟล์ ลองแก้จาก
<meta http-equiv="Content-Type" content="text/html;><?php echo _ISO; ?>" />

เป็น
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />

คือเอาเครื่องหมาย > ออกไปอันหนึ่ง
สำหรับ Hotmail สมบูรณ์แบบเลยครับ
แต่ ถ้าเป็น Gmail, Yahoo เนื้อเมล์ OK ครับ แต่ ชื่อเรื่อง( Subject ) อ่านไม่ออก
แต่ ถ้าเป็น Mail ของ บริษัท ชื่อเรื่อง( Subject ) OK ครับ เนื้อเมล์ อ่านไม่ออก สลับกัน
ทำไงดีครับ ขอความช่วยเหลือด้วยครับ
:'(

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8 -&g

Posted: Sun Jun 15, 2008 3:39 am
by arunsiam
การแก้ไขข้างต้น มันเกี่ยวกับการดูเว็บครับ มันไม่เกี่ยวอะไรกับอีเมลเลยครับ ถ้าเป็นการ encode ของอีเมลต้องไปแก้ที่ระบบเมลครับ

Re: ต้องการแนวทางในการแก้ปัญหาเกี่ยวกับ UTF-8 -&g

Posted: Sun Jun 15, 2008 4:25 am
by yongyee
ขอบคุณ
คุณ arunsiam ครับ ทำให้ผมเข้าใจอีก Step หนึ่ง
แล้วมีวิธีการแก้ปัญหา Email ดังกล่าวหรือเปล่าครับ