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,037

HOME > PHP > PHP Forum > เอาฟังก์ชั่่นมาฝาก สำหรับใครที่ใช้ php+sql server ไม่อยากเปลี่ยน charset UTF-8 เป็น TIS-620



 

เอาฟังก์ชั่่นมาฝาก สำหรับใครที่ใช้ php+sql server ไม่อยากเปลี่ยน charset UTF-8 เป็น TIS-620

 



Topic : 101014



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

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

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




เผื่อบางคนมีปัญหาเกี่ยวกับการใช้ฟังก์ชั่น php+sql server ซึ่งส่วนน้อยมากเว็บโปรแกรมเมอร์จะได้
มาใช้แบบนี้ ซึ่งก็คือผมนั่นเอง
เอามาแบ่งปันเผื่อบางคนต้องใช้ เพราะส่วนมากชินกับหน้าตา
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


แต่พอมาใช้ php+sql server แล้วต้องใช้ encoding แบบนี้ถึงจะแสดงผลภาษาไทยได้
<meta http-equiv="Content-Type" content="text/html; charset=tis-620" />

หรือ
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />


ทีนี้เราก็สามารถใช้รูปแบบ encoding ให้เป็นแบบมาตรฐานสากล นั่นก็คือ set หน้าเว็บเราให้เป็นแบบ UTF-8 ได้เลย
โดยใช้ฟังก์ชั่นนี้ เอาไว้เรียกใช้การแสดงผลจากฐานข้อมูลให้เป็นภาษาไทย โดยไม่ต้องปวดหัวว่า
php + sql server มันไม่แสดงภาษาไทยครับ

Code (PHP)
<?php
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;
?>
<!DOCTYPE html>
<html lang="en">
<head>

	<meta charset="utf-8">
<?php
// วิธีใช้
$sql="SELECT * FROM TABLE";
$qr=mssql_query($sql) or die($sql);
$rs=mssql_fetch_array($qr);
echo tis620_to_utf8($rs["fieldname"]);//เรียกใช้ฟังก์ชั่น
//ปล. ฟังก์ชั่น mssql อาจจะเก่าไปแล้ว แต่เชื่อว่าบางคนยังได้ใช้ต้องอยู่กับมันบ้าง
?>




Tag : PHP, Ms SQL Server 2008, JavaScript







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-09-26 13:17:53 By : compiak View : 2707 Reply : 5
 

 

No. 1



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

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

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

จัดไปครับ ว่าแต่ถ้าข้อความเยอะ ๆ จะช้าหรือเปล่าครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-26 13:25:34 By : mr.win
 


 

No. 2



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

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

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


พอได้นะพี่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-26 13:35:32 By : compiak
 

 

No. 3

Guest


uft8 ก็ดีอยู่แล้วนี่

แล้ว mssql ก็เก่าแล้วด้วย เพราะตั้งแต่ sql 2005 ขึ้นไป

ใช้ mssql ไม่ได้ (หรือ 2008 ขึ้นไปหว่า) ต้องใช้ sqlsrv

ยืนยันว่าควรใช้เป็น utf8 ทั้งหมดจะดีกว่า ไม่อยากให้ใช้ tis-620 หรือ window-874 เลย

ปล. ถ้า config server ใหม่ๆ นะ ขอเป็น utf8 ของเก่า encode เป็น tis-620 ก็ใช้อย่างนั้นไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-26 13:36:01 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 4



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

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

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


ตอนนี้ผมใช้ 2008 ครับผม

sqlsrv บางเซิฟยังใช้ไม่ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-26 13:38:36 By : compiak
 


 

No. 5



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

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

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

Odbc/sqlsrv/PDO ผมเขียนไว้ที่นี่ครับ

SQL Azure ร่วมกับ PHP (SQL Server) (Odbc/sqlsrv/PDO)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-26 14:03:25 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เอาฟังก์ชั่่นมาฝาก สำหรับใครที่ใช้ php+sql server ไม่อยากเปลี่ยน charset UTF-8 เป็น TIS-620
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่