Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ขอสอบถามวิธีแก้หน่อยค่ะ ฐานข้อมูลภาษาเป็น latin1_swedish_ci ดึงข้อความภาษาไทยมาแสดงอ่านไม่ออกเลยค่ะ มีวิธีแก้ไหมค่ะ



 

ขอสอบถามวิธีแก้หน่อยค่ะ ฐานข้อมูลภาษาเป็น latin1_swedish_ci ดึงข้อความภาษาไทยมาแสดงอ่านไม่ออกเลยค่ะ มีวิธีแก้ไหมค่ะ

 



Topic : 124843



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์




ขอสอบถามหน่อยค่ะ พอดีนายให้แก้ภาษาใน Database

Database ภาษาจะเป็น latin1_swedish_ci ค่ะ ข้อคงามภาษาไทยที่เก็บในฐานข้อมูลการเป็น ภาษาแบบนี้ค่ะ "ºÒ§ÁÙŹҡÀÙÁÔÇÔ·ÂÒ¤Á"

แล้วพอเขียนโค๊ดดึงมาแสดงถ้ากำหนด mysql_set_charset("utf8",$conn); เป็น utf8 ก็จะแสดงเป็นตัวแบบในฐานข้อมูลเลยค่ะ
แต่ถ้ากำหนดเป็น tis620 ก็จะแสดงเป็น ????????????? อ่ะค่ะ

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

รบกวนด้วยนะค่ะ อ่านทุกบทความ ลองทำตามหมดแล้ว แต่ก็ยังไม่ได้สักที
ขอบคุณค่ะ



Tag : PHP, MySQL, HTML/CSS







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-10-05 15:22:52 By : bananashy View : 2546 Reply : 21
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ต้องเปลี่ยนไปใช้แบบ utf8 ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-05 15:34:50 By : mr.win
 


 

No. 2



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2016-10-05 15:34:50
รายละเอียดของการตอบ ::
ลองแก้ในฐานข้อมูลตรง Collation ให้เป็น utf8_general_ci แล้วค่ะ ก็ไม่ได้

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-05 15:38:10 By : bananashy
 

 

No. 3



โพสกระทู้ ( 371 )
บทความ ( 0 )



สถานะออฟไลน์


แล้วตัวโค้ดละครับได้กำหนดให้เป็น utf8 รึเปล่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-05 16:50:09 By : stepartz
 


 

No. 4



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : stepartz เมื่อวันที่ 2016-10-05 16:50:09
รายละเอียดของการตอบ ::
ตัวโค๊ดเวลากำหนดเป็น utf-8 ข้อความมันจะออกมาเป็นรูปแบบ แบบในฐานข้อมูลเลยค่ะ คือแบบนี้ ºÒ§ÁÙŹҡÀÙÁÔÇÔ·ÂÒ¤Á แต่ถ้าลองเปลี่ยนมาเป็น tis-620 ก้จะกลายเป็น ?????

พอจะมีวิธีไหมค่ะ ที่จะให้หน้าเว็บแสดงเป็นภาษาไทย เพราะอยากจะนำไป insert ลงอีกฐานข้อมูลนึงที่ตั้งค่าเป็น utf ที่ถูกต้องแล้ว เพราะอันเก่ามันเป็น latin1_swedish_ci ตั้งแต่ต้น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-05 17:03:17 By : bananashy
 


 

No. 5



โพสกระทู้ ( 371 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : bananashy เมื่อวันที่ 2016-10-05 17:03:17
รายละเอียดของการตอบ ::
ไม่งั้นก็ export dateabase ออกมาแล้ว เปิดดูใน notepad ดูครับแล้วแก้ตรงภาษาแล้ว import database กลับเข้าไปใหม่

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-05 17:19:39 By : stepartz
 


 

No. 6



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : stepartz เมื่อวันที่ 2016-10-05 17:19:39
รายละเอียดของการตอบ ::
มันไม่ได้อ่ะค่ะ คือในฐานข้อมูลมันเป็น ภาษาที่อ่านไม่ออกอยู่แล้วด้วยค่ะ ทำให้เวลา export ออกมาเป็นไฟล์อะไรก็เป็นภาษาต่างดาว หรือเอา .sql เปิดใน notepad ก้เป็นภาษาต่างดาวค่ะ

พอจะมีวิธีหรือโค๊ดที่แปลงภาษาต่างดาวในฐานข้อมูลให้แสดงผลทางหน้าเว็บเป็นภาษาไทยไหมค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-06 14:14:17 By : bananashy
 


 

No. 7



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ที่เคยตอบไป ถ้าจะเอาให้เสร็จ กี่ตารางก็ต้องยอม...
ถ้ามันแสดงค่าออกมาเป็น ภาษาไทย ก็ดู code ตรงนั้น จากมันวนลูป insert ภาษาไทยกลับไปใน ตารางใหม่ พอจะนึกตามออกไหมครับ


Go to : อยากเปลี่ยนฐานข้อมูล MYSql ให้มันเป็นภาษาไทยอะครับ รายละเอียดด้านใน

หรือ ลอง INBOX ไปถามคุณ zarooman ดูครับว่าเขาแก้แบบไหน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-06 15:23:07 By : apisitp
 


 

No. 8



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : apisitp เมื่อวันที่ 2016-10-06 15:23:07
รายละเอียดของการตอบ ::
ขอบคุณมากนะค่ะ จะลองทำดูค่ะ ข้อมูลมันเยอะมากถ้าจะมาแก้เองคงไม่ไหว เดียวจะลองดูนะค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-06 16:02:31 By : bananashy
 


 

No. 9



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เยอะก็ต้อง ทยอยทำ เขียน code ดีดี ทำใน phpmyadmin (ถ้าใช้) หรือ สร้างระบบเปลี่ยนตัวแปรชื่อตาราง ข้อมูลไปเรื่อย ๆ ง่ายกว่า เร็วกว่า คิวรี่ select แล้วมา insert ไม่น่าจะกินเวลาเยอะครับ ลองรอดูคุณ zarooman ดูก่อนก็ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-06 16:48:48 By : apisitp
 


 

No. 10



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : apisitp เมื่อวันที่ 2016-10-06 16:48:48
รายละเอียดของการตอบ ::
วิธีการสร้างระบบเปลี่ยนตัวแปรชื่อตารางข้อมูลไปเรื่อยๆ หมายถึงยังไงหรอค่ะ แล้วข้อมูลที่มันอยู่ในเรคคอดที่เป็นภาษาต่างดาวมันจะเป็นภาษาไทยปกติใช่ไหมค่ะ

รบกวนด้วยนะค่ะคุณ Mr.กล้า ไม่เก่งเรื่องแบบนี้จริงๆ ค่ะ โดนสั่งงานมาไม่รู้จะปรึกษาใคร

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-06 17:17:35 By : bananashy
 


 

No. 11



โพสกระทู้ ( 4,717 )
บทความ ( 8 )



สถานะออฟไลน์


ข้อมูลเยอะไหม ถ้า export แล้วไม่เกิน 10 เมก ส่งมาให้ผมลองแปลงให้ไหม?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-06 21:43:03 By : mr.v
 


 

No. 12



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ออกแบบ Table ด้วย UTF-8 จะต้องใช้การ Export/Import เป็น Collation เก่าก่อนครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-07 08:33:09 By : mr.win
 


 

No. 13



โพสกระทู้ ( 9,554 )
บทความ ( 2 )



สถานะออฟไลน์


น่าจะลองทำเองดูก่อนนะครับ จะได้ความรู้เพิ่ม
ขั้นตอน
1 export เฉพาะ structure ออกมาเป็น ไฟล์ .sql
2 เข้าไปแก้ไข ไฟล์ .sql เปลียน collation จาก latin_swedish_ci เป็น utf8_unicode_ci โดยใช้เครื่องมือ replace
3 สร้าง database ใหม่ กำหนด collation เป็น utf8_unicode_ci
4 import ตาราง ด้วย file .sql ที่แก้นั้น กับ database ใหม่
5 เขียนโปรแกรม php ตามตัวอย่างข้างล่าง
Code (PHP)
class db_tis_2_utf{
	public $tis;
	public $utf;
	public function __construct( $host, $user, $paswd, $tis,$utf){
		$this->tis = new mysqli($host, $user, $paswd, $tis);
		$this->tis->set_charset('tis620');
		$this->utf = new mysqli($host, $user, $paswd, $utf);
		$this->utf->set_charset('utf8');
		$this->convert();
	}
	public function convert(){
		$rs=$this->tis->query('show tables');
		$tbs=$rs->fetch_all();
		foreach($tbs as $ro){ $this->transfer($ro[0]); }
	}
	private function transfer( $tb ){
		$rs=$this->tis->query('select * from '.$tb);
		$flds = $rs->fetch_fields();
		//////////
		while($ro=$rs->fetch_assoc()){
			$sql = 'insert into '.$tb.' ';
			foreach ($flds as $key=>$val) {
				$nm=$val->name; $vl=$ro[$nm];
				switch($val->type){
				case 253: case 254: case 255: // varchar
					$value = iconv('tis620', 'utf8', $vl);
					$sql .= ($key>0? "," : 'set')." $nm='$value' ";
					break;
				case 249: case 250: case 251: // blob
					$value = bin2hex($vl); $x = strlen($value)? '0x'.$value : "''";
					$sql .= ($key>0? "," : 'set')." $nm=$x ";
					break;
				default: // number, date etc.
					$sql .= ($key>0? "," : 'set')." $nm='$vl' ";
					break;
				}
			}
			$this->utf8->query($sql);
		}
		unset($rs); unset($flds);
	}	
}
$z = new db_tis_2_utf('host','user','psw','dbtis', 'dbutf');


ปล.
โค๊ดตามตัวอย่าง ยังไม่ได้เทสต์
ข้อจำกัด
1 อาจจะเออเร่อร์ ถ้า ตารางมีจำนวนเรคอร์ด มากๆ เกินหน่วยความจำ ทำ loop กำหนด limit pagination เอาเองนะครับ
2 ไม่ได้ ตรวจสอบ field type ประเภท enum set ถ้ามีภาษาไทย ก็จัดการเอาเองครับ
3 timeout ไม่ได้กำหนด เพราะไม่รู้วาจำเป็นหรือไม่ ถ้า database ใหญ่ก็กำหนดความเหมาะสมเอาเองครับ

ยังไงก็ประยุกต์เอาเองนะครับ

จะไม่พยายามเขียนให้หมด อย่างน้อยต้องแก้ไขบ้าง จะแก้ไขได้ก็ต้องอ่านทำความเข้าใจกับโค๊ดก่อน


ประวัติการแก้ไข
2016-10-07 10:09:41
2016-10-07 10:11:50
2016-10-07 14:12:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-07 10:04:11 By : Chaidhanan
 


 

No. 14



โพสกระทู้ ( 3,155 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ลองใช้ encode windows-874 ในหน้าเวบครับ
แล้วดึงข้อมูลมาแสดงครับ น่าจะอ่านภาษาไทยได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-07 11:01:03 By : sakuraei
 


 

No. 15



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : mr.v เมื่อวันที่ 2016-10-06 21:43:03
รายละเอียดของการตอบ ::
ขอบคุณมากๆ นะค่ะ แต่อยากรู้วิธีการทำ อยากลองทำเองด้วยค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-11 08:35:46 By : bananashy
 


 

No. 16



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 12 เขียนโดย : mr.win เมื่อวันที่ 2016-10-07 08:33:09
รายละเอียดของการตอบ ::
ลองทำตามนี้แล้วค่ะ แต่ก็ไม่ได้ แต่ก็ไม่แน่ใจว่า พี่ที่เขาแบล็คอัพมาให้ก่อนหน้า เขาแบล็คอัพมายังไง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-11 08:36:44 By : bananashy
 


 

No. 17



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-10-07 10:04:11
รายละเอียดของการตอบ ::
ขอบคุณมากๆ เลยนะค่ะ จะลองเอาไปประยุกค์ใช้ดูนะค่ะ ตอนนี้เรียนรู้เองแล้ว ไม่รีบแล้วค่ะ นายไปจ้างข้างนอกทำแล้ว พอดีมันเปนงานด่วน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-11 08:37:54 By : bananashy
 


 

No. 18



โพสกระทู้ ( 78 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 14 เขียนโดย : sakuraei เมื่อวันที่ 2016-10-07 11:01:03
รายละเอียดของการตอบ ::
ลองแบบนี้แล้วค่ะ แต่ก็เหมือนเดิมเลย ขอบคุณมากๆ นะค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-11 08:38:35 By : bananashy
 


 

No. 19



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : mr.v เมื่อวันที่ 2016-10-06 21:43:03
รายละเอียดของการตอบ ::
รบกวนช่วงแปลงข้อมูลให้หน่อยครับเป็นภาษาต่างด้าวครับ ขอบคุณhttp://thaitaxiontour.com/customer.sqlครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-10-21 13:06:30 By : naim
 


 

No. 20



โพสกระทู้ ( 1,458 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 19 เขียนโดย : naim เมื่อวันที่ 2020-10-21 13:06:30
รายละเอียดของการตอบ ::
ไม่ 100% แต่ที่เหลือเหมือนเติมคำในช่องว่าง
เนื่องจากเป็นข้อมูลส่วนบุคคลไม่สามารถเปิดเผยได้
จึงบอกวิธีแปลง code page แทน

ข้อมูลจะมีสองส่วน

ส่วนแรกเปิดไฟล์ด้วย web browser เปลี่ยน Encoding -> UTF-8
แล้วคัดลอกส่วนภาษาไทยที่สมบูรณ์ไว้

ส่วนที่สอง ทำเหมือนส่วนแรก แต่คัดลอกส่วนที่แสดงเป็นภาษาต่างด้าว
ไปแปลง codepage จาก Windows-1252 -> UTF-8
จะได้ภาษาไทยเกือบสมบูรณ์

สุดท้ายนำผลทั้งสองส่วนมารวมกันแล้วบันทึกเป็นไฟล์ .sql ใหม่

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-10-21 23:24:48 By : PhrayaDev
 


 

No. 21



โพสกระทู้ ( 9,554 )
บทความ ( 2 )



สถานะออฟไลน์


html::
<!doctype html>
<head>
<meta charset="utf-8">



php
$con=new mysqli(......);
$con->set_charset('utf-8');
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-10-22 05:32:19 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอสอบถามวิธีแก้หน่อยค่ะ ฐานข้อมูลภาษาเป็น latin1_swedish_ci ดึงข้อความภาษาไทยมาแสดงอ่านไม่ออกเลยค่ะ มีวิธีแก้ไหมค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่