font เป็นแบบนี้ ����� แก้ไขอย่างไงครับ

เริ่มโดย WPDSign, 05 ธันวาคม 2009, 19:43:44

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

WPDSign

หลังจากผมเปลี่ยน charset จาก windows-874 มาเป็น utf-8 มันก็มี �

เป็นเพราะอะไรแล้วแก้ไขอย่างไรครับ

สร้างบ้าน Modern [direct=https://casa-concept1.com/]แบบบ้านโมเดิร์น[/direct] มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ [direct=http://www.architect-bkk.com/แบบบ้านสองชั้น]แบบบ้านสองชั้น[/direct] ทุกสไลต์บริการ[direct=http://www.ideaican.com/]รับสร้างบ้าน[/direct] ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มี[direct=https://แบบบ้านสไตล์รีสอร์ท.blogspot.com]แบบบ้านสไตล์รีสอร์ท[/direct]พร้อมก่อสร้าง ลงประกาศขายบ้านที่ [direct=http://www.classified108.com/]ลงประกาศ[/direct]

webjeng

[direct=http://www.hi5-code.com]hi5 code[/direct]
[direct=http://www.code-hi5.com]code hi5[/direct]
บริการเจาะหาข้อมูล

GigBoT

ถ้าดึงจากฐานข้อมูล ลองใช้คำสั่ง iconv()  ดูครับน่าจะได้นะ
[direct=https://pscclinic.com/breast-surgery/]ทำนม[/direct] - คลินิกเสริมหน้าอก PSC อันดับ 1 ของไทย
[direct=https://www.moveonmarketing.com/seo]รับทำ SEO สายขาว[/direct] |
[direct=https://www.cz.co.th/seo]รับทำ SEO[/direct]
[direct=https://www.nitithamclinic.com/laser-tattoo-removal-nitithamclinic/]ลบรอยสัก[/direct] - เลเซอร์ลบรอยสัก Pico Laser เห็นผลจริง มีรีวิวการันตี
[direct=https://www.ssdhosting.in.th/]WordPress Hosting[/direct] - โฮสติ้งคุณภาพ ที่ออกแบบมาเพื่อเว็บไซต์แบบ WordPress โดนเฉพาะ

WPDSign

สร้างบ้าน Modern [direct=https://casa-concept1.com/]แบบบ้านโมเดิร์น[/direct] มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ [direct=http://www.architect-bkk.com/แบบบ้านสองชั้น]แบบบ้านสองชั้น[/direct] ทุกสไลต์บริการ[direct=http://www.ideaican.com/]รับสร้างบ้าน[/direct] ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มี[direct=https://แบบบ้านสไตล์รีสอร์ท.blogspot.com]แบบบ้านสไตล์รีสอร์ท[/direct]พร้อมก่อสร้าง ลงประกาศขายบ้านที่ [direct=http://www.classified108.com/]ลงประกาศ[/direct]

WPDSign

อ้างถึงจาก: GigBoT ใน 05 ธันวาคม 2009, 19:56:44
ถ้าดึงจากฐานข้อมูล ลองใช้คำสั่ง iconv()  ดูครับน่าจะได้นะ

ครับ
ดึงจาก ฐานข้อมูล

ขอตัวอย่าง สักหน่อยครับ พอดีไม่เคยใช้  iconv(); ครับ
สร้างบ้าน Modern [direct=https://casa-concept1.com/]แบบบ้านโมเดิร์น[/direct] มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ [direct=http://www.architect-bkk.com/แบบบ้านสองชั้น]แบบบ้านสองชั้น[/direct] ทุกสไลต์บริการ[direct=http://www.ideaican.com/]รับสร้างบ้าน[/direct] ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มี[direct=https://แบบบ้านสไตล์รีสอร์ท.blogspot.com]แบบบ้านสไตล์รีสอร์ท[/direct]พร้อมก่อสร้าง ลงประกาศขายบ้านที่ [direct=http://www.classified108.com/]ลงประกาศ[/direct]

webjeng

อ้างถึงจาก: WPDSign ใน 05 ธันวาคม 2009, 19:56:57
http://www.postfree108.com/

ครับลิงค์ที่ลายเซ็นครับ

ผมเข้าปกตินะครับ หรือว่าแก้ได้แล้ว
[direct=http://www.hi5-code.com]hi5 code[/direct]
[direct=http://www.code-hi5.com]code hi5[/direct]
บริการเจาะหาข้อมูล

WPDSign

อ้างถึงจาก: webjeng ใน 05 ธันวาคม 2009, 20:01:10
อ้างถึงจาก: WPDSign ใน 05 ธันวาคม 2009, 19:56:57
http://www.postfree108.com/

ครับลิงค์ที่ลายเซ็นครับ

ผมเข้าปกตินะครับ หรือว่าแก้ได้แล้ว

ยังเลยครับ



ผมเปิดกับ ff จะเป็น �
เปิดกับ ie8 จะเป็น []  ครับ

สร้างบ้าน Modern [direct=https://casa-concept1.com/]แบบบ้านโมเดิร์น[/direct] มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ [direct=http://www.architect-bkk.com/แบบบ้านสองชั้น]แบบบ้านสองชั้น[/direct] ทุกสไลต์บริการ[direct=http://www.ideaican.com/]รับสร้างบ้าน[/direct] ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มี[direct=https://แบบบ้านสไตล์รีสอร์ท.blogspot.com]แบบบ้านสไตล์รีสอร์ท[/direct]พร้อมก่อสร้าง ลงประกาศขายบ้านที่ [direct=http://www.classified108.com/]ลงประกาศ[/direct]

Reality

#7
charset ที่แสดงใน HTML, charset ที่เซฟไฟล์, charset ของข้อมูลใน MySQL ไม่ตรงกันคับ (คิดว่านะ)

ทางแก้ก็ปัดให้ตรงกัน
วิธีแรก.
แก้แท๊ก
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ถ้ายังไม่โอเค
ตอนเซฟไฟล์ก็เลือกเป็น UTF-8

ถ้าไม่ได้อีก
หลังจากคอนเน็ค MySQL ก็ใช้คำสั่ง
mysql_query("SET NAMES utf8");

แต่ถ้าข้อมูลใน MySQL มี charset เป็น tis-620 ก็ใช้คำสั่ง iconv เอาก็ได้ครับ

ถ้าเซิฟเวอร์ไม่ซัพพอร์ต iconv ก็ใช้ฟังชันท์นี้เอาครับ
# -- Encoder
function tis620_to_utf8($text) {
$utf8 = "";
for ($i = 0; $i < strlen($text); $i++) {
$a = substr($text, $i, 1);
$val = ord($a);

if ($val < 0x80) {
         $utf8 .= $a;
} elseif ((0xA1 <= $val && $val < 0xDA) || (0xDF <= $val && $val <= 0xFB)) {
         $unicode = 0x0E00+$val-0xA0;
         $utf8 .= chr(0xE0 | ($unicode >> 12));
         $utf8 .= chr(0x80 | (($unicode >> 6) & 0x3F));
         $utf8 .= chr(0x80 | ($unicode & 0x3F));
}
}
return $utf8;
}

function utf8_to_tis620($string) {
$str = $string;
$res = "";
for ($i = 0; $i < strlen($str); $i++) {
if (ord($str[$i]) == 224) {
      $unicode = ord($str[$i+2]) & 0x3F;
      $unicode |= (ord($str[$i+1]) & 0x3F) << 6;
      $unicode |= (ord($str[$i]) & 0x0F) << 12;
      $res .= chr($unicode-0x0E00+0xA0);
      $i += 2;
} else {
      $res .= $str[$i];
}
}
return $res;
}


ถ้าที่ผมพูดมายังไม่เวิร์คอีกก็ขออภัยครับ  :P

แต่ของผมหายตั้งแต่ตั้ง charset ให้เหมือนกันแล้วครับ
*You walk right into reality, While my heart's still wild and free.. 

[direct=http://midnightadventure.net]Midnight Adventure[/direct]

webjeng

เห็นด้วยกับคุณ Luscentz ครับ

ของผม เคยมีปัญหาคล้ายๆ กันอย่างนี้ นานมาแล้ว มีคนแนะนำให้ใช้
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
ตอน connect database

ผมก็ใช้มาตลอด ผมไม่ใช่โปรแกรมเมอร์จึงไม่รู้ว่ามันทำอะไร ยังไงก็ลองดูครับ เผื่อช่วยได้ :P
[direct=http://www.hi5-code.com]hi5 code[/direct]
[direct=http://www.code-hi5.com]code hi5[/direct]
บริการเจาะหาข้อมูล

WPDSign

#9
อ้างถึงจาก: Luscentz ใน 05 ธันวาคม 2009, 20:10:09
charset ที่แสดงใน HTML, charset ที่เซฟไฟล์, charset ของข้อมูลใน MySQL ไม่ตรงกันคับ (คิดว่านะ)

ทางแก้ก็ปัดให้ตรงกัน
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ตอนเซฟไฟล์ก็เลือกเป็น UTF-8

หลังจากคอนเน็ค MySQL ก็ใช้คำสั่ง
mysql_query("SET NAMES utf8");

แต่ถ้าข้อมูลใน MySQL มี charset เป็น tis-620 ก็ใช้คำสั่ง iconv เอาก็ได้ครับ

ถ้าเซิฟเวอร์ไม่ซัพพอร์ต iconv ก็ใช้ฟังชันท์นี้เอาครับ
# -- Encoder
function tis620_to_utf8($text) {
$utf8 = "";
for ($i = 0; $i < strlen($text); $i++) {
$a = substr($text, $i, 1);
$val = ord($a);

if ($val < 0x80) {
        $utf8 .= $a;
} elseif ((0xA1 <= $val && $val < 0xDA) || (0xDF <= $val && $val <= 0xFB)) {
        $unicode = 0x0E00+$val-0xA0;
        $utf8 .= chr(0xE0 | ($unicode >> 12));
        $utf8 .= chr(0x80 | (($unicode >> 6) & 0x3F));
        $utf8 .= chr(0x80 | ($unicode & 0x3F));
}
}
return $utf8;
}

function utf8_to_tis620($string) {
$str = $string;
$res = "";
for ($i = 0; $i < strlen($str); $i++) {
if (ord($str[$i]) == 224) {
     $unicode = ord($str[$i+2]) & 0x3F;
     $unicode |= (ord($str[$i+1]) & 0x3F) << 6;
     $unicode |= (ord($str[$i]) & 0x0F) << 12;
     $res .= chr($unicode-0x0E00+0xA0);
     $i += 2;
} else {
     $res .= $str[$i];
}
}
return $res;
}


ถ้าที่ผมพูดมายังไม่เวิร์คอีกก็ขออภัยครับ  :P

แต่ของผมหายตั้งแต่ตั้ง charset ให้เหมือนกันแล้วครับ

ขอบคุณมากครับ

สำหรับที่ db เป็น utf8 ครับ
ยังไม่หายครับ

ส่วนไฟล์ connect

ผมใส่บรรทัดนี้ไว้ด้วยครับ

mysql_query("SET character_set_results=utf8") or die("Err:");
mysql_query("SET character_set_client=utf8") or die("Err:");
mysql_query("SET character_set_connection=utf8") or die("Err:");



ก่อนกน้านี้ ที่ผมใช้ windows-874 ปกติดีครับ
แต่พอเปลี่ยน งง เลยครับ
สร้างบ้าน Modern [direct=https://casa-concept1.com/]แบบบ้านโมเดิร์น[/direct] มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ [direct=http://www.architect-bkk.com/แบบบ้านสองชั้น]แบบบ้านสองชั้น[/direct] ทุกสไลต์บริการ[direct=http://www.ideaican.com/]รับสร้างบ้าน[/direct] ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มี[direct=https://แบบบ้านสไตล์รีสอร์ท.blogspot.com]แบบบ้านสไตล์รีสอร์ท[/direct]พร้อมก่อสร้าง ลงประกาศขายบ้านที่ [direct=http://www.classified108.com/]ลงประกาศ[/direct]

webjeng

ยังไม่หายเหรอครับ

งั้นดูขนาดของ เจ้าดาต้าเบสช่องนั้นว่ามันเท่าไหร่ ค่ามันเป็นอะไร

เพราะข้อความสั้นๆ มันจะไม่เป็นใช่เปล่าครับ
[direct=http://www.hi5-code.com]hi5 code[/direct]
[direct=http://www.code-hi5.com]code hi5[/direct]
บริการเจาะหาข้อมูล

Reality

ข้อความที่แสดงตัดมารึเปล่าครับ ดูประโยคแล้วไม่ครบคำเลย

ลองแสดง (ช่องว่าง - space) ที่ท้ายประโยคว่าหายไหม
*You walk right into reality, While my heart's still wild and free.. 

[direct=http://midnightadventure.net]Midnight Adventure[/direct]

webjeng

คิดอย่างอื่นไม่ออกเหมือนกัน เอาใจช่วยนะครับ ถ้ายังไงรายงานความคืบหน้าด้วยครับ
[direct=http://www.hi5-code.com]hi5 code[/direct]
[direct=http://www.code-hi5.com]code hi5[/direct]
บริการเจาะหาข้อมูล

WPDSign

อ้างถึงจาก: webjeng ใน 05 ธันวาคม 2009, 20:24:30
ยังไม่หายเหรอครับ

งั้นดูขนาดของ เจ้าดาต้าเบสช่องนั้นว่ามันเท่าไหร่ ค่ามันเป็นอะไร

เพราะข้อความสั้นๆ มันจะไม่เป็นใช่เปล่าครับ

ประมาณ 85.8 MiB แล้วอีกตัว 6.6 KiB ครับ
สร้างบ้าน Modern [direct=https://casa-concept1.com/]แบบบ้านโมเดิร์น[/direct] มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ [direct=http://www.architect-bkk.com/แบบบ้านสองชั้น]แบบบ้านสองชั้น[/direct] ทุกสไลต์บริการ[direct=http://www.ideaican.com/]รับสร้างบ้าน[/direct] ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มี[direct=https://แบบบ้านสไตล์รีสอร์ท.blogspot.com]แบบบ้านสไตล์รีสอร์ท[/direct]พร้อมก่อสร้าง ลงประกาศขายบ้านที่ [direct=http://www.classified108.com/]ลงประกาศ[/direct]

webjeng

อ้างถึงจาก: WPDSign ใน 05 ธันวาคม 2009, 20:30:02
อ้างถึงจาก: webjeng ใน 05 ธันวาคม 2009, 20:24:30
ยังไม่หายเหรอครับ

งั้นดูขนาดของ เจ้าดาต้าเบสช่องนั้นว่ามันเท่าไหร่ ค่ามันเป็นอะไร

เพราะข้อความสั้นๆ มันจะไม่เป็นใช่เปล่าครับ

ประมาณ 85.8 MiB แล้วอีกตัว 6.6 KiB ครับ

ผมหมายถึงว่ามันเป็น varchar text หรือว่าอย่างอื่น

แล้ว ถ้าใส่ข้อความสั้นๆ มันไม่เป็นใช่เปล่าครับ

[direct=http://www.hi5-code.com]hi5 code[/direct]
[direct=http://www.code-hi5.com]code hi5[/direct]
บริการเจาะหาข้อมูล

webjeng

ได้แล้วนี่ครับ ไม่ทราบว่าแก้ยังไงครับ :wanwan044:
[direct=http://www.hi5-code.com]hi5 code[/direct]
[direct=http://www.code-hi5.com]code hi5[/direct]
บริการเจาะหาข้อมูล

WPDSign

อ้างถึงจาก: webjeng ใน 05 ธันวาคม 2009, 20:32:16
อ้างถึงจาก: WPDSign ใน 05 ธันวาคม 2009, 20:30:02
อ้างถึงจาก: webjeng ใน 05 ธันวาคม 2009, 20:24:30
ยังไม่หายเหรอครับ

งั้นดูขนาดของ เจ้าดาต้าเบสช่องนั้นว่ามันเท่าไหร่ ค่ามันเป็นอะไร

เพราะข้อความสั้นๆ มันจะไม่เป็นใช่เปล่าครับ

ประมาณ 85.8 MiB แล้วอีกตัว 6.6 KiB ครับ



ผมหมายถึงว่ามันเป็น varchar text หรือว่าอย่างอื่น

แล้ว ถ้าใส่ข้อความสั้นๆ มันไม่เป็นใช่เปล่าครับ





เป็น varchar  ครับ



แต่ได้แล้วครับ เป็นเพราะใช้ function ตัดคำ จริงๆด้วย

$key=substr($key,0,150);

แล้วผมต้องใช้การตัดคำแบบไหนได้บ้าง ถึง font จะไม่เพี้ยนครับ

ขอบคุณมากครับ
+1 Thank ให้ทุกท่านครับ
สร้างบ้าน Modern [direct=https://casa-concept1.com/]แบบบ้านโมเดิร์น[/direct] มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ [direct=http://www.architect-bkk.com/แบบบ้านสองชั้น]แบบบ้านสองชั้น[/direct] ทุกสไลต์บริการ[direct=http://www.ideaican.com/]รับสร้างบ้าน[/direct] ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มี[direct=https://แบบบ้านสไตล์รีสอร์ท.blogspot.com]แบบบ้านสไตล์รีสอร์ท[/direct]พร้อมก่อสร้าง ลงประกาศขายบ้านที่ [direct=http://www.classified108.com/]ลงประกาศ[/direct]

WPDSign

อ้างถึงจาก: Luscentz ใน 05 ธันวาคม 2009, 20:25:26
ข้อความที่แสดงตัดมารึเปล่าครับ ดูประโยคแล้วไม่ครบคำเลย

ลองแสดง (ช่องว่าง - space) ที่ท้ายประโยคว่าหายไหม

ขอบคุณ สำหรับ เทคนิคนี้ครับ 
อ้างถึงจาก: webjeng ใน 05 ธันวาคม 2009, 20:34:08
ได้แล้วนี่ครับ ไม่ทราบว่าแก้ยังไงครับ :wanwan044:

ขอบคุณมากครับ
สร้างบ้าน Modern [direct=https://casa-concept1.com/]แบบบ้านโมเดิร์น[/direct] มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ [direct=http://www.architect-bkk.com/แบบบ้านสองชั้น]แบบบ้านสองชั้น[/direct] ทุกสไลต์บริการ[direct=http://www.ideaican.com/]รับสร้างบ้าน[/direct] ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มี[direct=https://แบบบ้านสไตล์รีสอร์ท.blogspot.com]แบบบ้านสไตล์รีสอร์ท[/direct]พร้อมก่อสร้าง ลงประกาศขายบ้านที่ [direct=http://www.classified108.com/]ลงประกาศ[/direct]

halu

เปิดไฟล์ php ด้วย editplus แล้วเปลี่ยน encoding ของหน้า php นั้น ๆ เป็น utf-8 แค่นี้ก็จะแก้ปัญหาได้แล้วเนอะ อย่าไปใช้ iconv เลย มันเป็นการแก้ปัญหาที่ปลายเหตุ

halu

#19
ลืมบอกไปเนอะ เปิดไฟล์ด้วย editplus ไปที่ File Encoding เลือก Change File Encoding เปลี่ยนเป็น utf-8 แล้ว save ไฟล์นั้น  ถ้าปัญหามาจากการตัดคำก็ให้ตัดตรงช่องว่างดีกว่าเนอะ :wanwan004: