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 > Mobile > Mobile Forum > Android มีปัญหาเรื่องภาษาไทย กับ php+MSSQL server2008r2 +json ครับ



 

Android มีปัญหาเรื่องภาษาไทย กับ php+MSSQL server2008r2 +json ครับ

 



Topic : 084165



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



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




เนื่องจากผมผมทำโปรแกรมโดยดึงข่าวมาจาก database MSSQL SERVER2008 r2 ซึ่งเป็นภาษาไทยครับ และใช้ php เป็น webservice ในการส่งข้อมูลเข้า Android ครับ โดยใช้ jsonencode โดยสามารถส่งข้อมมูลภาษาอังกฤษได้ตามปรกติ แต่ถ้าอันไหนที่เป็นภาษาไทยมันไม่จะแสดงข้อมมูลออกมาเลยครับ มันจะหายไปเลย ลองทำตามที่พี่ๆบอกก็ยังไม่หายเลยครับ ลองใช้ iconv และบันทึกเป็นไฟล์ PHP เป็น UTF8 ก็ยังไม่ได้ออกภาษาไทยออยู่ดีครับไม่ทราบว่าต้องแก้ปัญหาจุดใดบ้างครับ

แต่ถ้าเรียกธรรมดาไม่ได้ ใช้ json จะออกตามปรกติเลยครับ

<?php
$myServer = "***";
$myUser = "****";
$myPass = "*****";
$myDB = "*****"; 

//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
  or die("Couldn't connect to SQL Server on $myServer"); 

//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
  or die("Couldn't open database $myDB"); 

//declare the SQL statement that will query the database
$query = "SELECT * ";
$query .= "FROM test ";

//execute the SQL query and return records
$result = mssql_query($query);

$numRows = mssql_num_rows($result); 
echo "<h1>" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned </h1>"; 

//display the results 
while($row = mssql_fetch_array($result))
{
  echo "<li>" . $row["name"] . $row["tel"] . $row["data"] . "</li>";
}
//close the connection
mssql_close($dbhandle);
?>


ผลลัพ

2 Rows Returned

ดกเกหเก12121กดเกดเ
กดเกเกดเกเ1235กเกหเกดเ



Tag : Ms SQL Server 2008, Android









ประวัติการแก้ไข
2012-09-18 04:58:35
2012-09-18 04:59:17
2012-09-18 16:01:35
2012-09-18 16:07:18
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-09-18 04:52:49 By : rut View : 3643 Reply : 8
 

 

No. 1



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

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

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

ลองดูก่อนครับ
mssql_query("SET character_set_results=utf-8");
mssql_query("SET character_set_client=utf-8");
mssql_query("SET character_set_connection=utf-8");







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-18 08:04:58 By : Krungsri
 


 

No. 2



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



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


ลงหมดเลยครับ พอใส่ไปมันแจ้ง error ครับ

Code
Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near '='. (severity 15) in C:\AppServ\www\json.php on line 23

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-18 15:06:26 By : rut
 

 

No. 3



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



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


ลองหาข้อมูลมาทำได้แล้วครับตอนนี้ ผมใช้

Code (PHP)
$data = iconv("WINDOWS-874","UTF-8",$obResult[$i]);


เผื่อคนที่ยังไม่รุ้น๊ะครับผม


ประวัติการแก้ไข
2012-09-19 02:20:04
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-18 17:05:17 By : rut
 


 

No. 4



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

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

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

แจ่มครับ กำลังมาตอบพอดีว่าให้ดูพวก iconv()
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-19 06:06:15 By : mr.win
 


 

No. 5

Guest


$data = iconv("WINDOWS-874","UTF-8",$obResult[$i]);
ต้องเอาไปวางไว้ไหน ของ โค้ด คะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-26 11:54:35 By : อ้อม
 


 

No. 6

Guest


พอดีลองใช้ datatables มีปัญหากับการใช้ สุดท้ายไปได้มาจาก php.net ใช้ได้ทั้งสองฟังชั่น (ก่อนหน้านี้ลองมาหลายอย่าง ก็ไม่ได้) เลยเอามาแชร์ เผื่อจะมีผู้ติดขัดปัญหานี้

Code (PHP)
//2 function of json from http://php.net/manual/fr/function.json-encode.php ...good work :=)
function _json_encode($arr)
{
        //convmap since 0x80 char codes so it takes all multibyte codes (above ASCII 127). So such characters are being "hidden" from normal json_encoding
        array_walk_recursive($arr, function (&$item, $key) { if (is_string($item)) $item = mb_encode_numericentity($item, array (0x80, 0xffff, 0, 0xffff), 'UTF-8'); });
        return mb_decode_numericentity(json_encode($arr), array (0x80, 0xffff, 0, 0xffff), 'UTF-8');

}

function my_json_encode($in) { 
  $_escape = function ($str) { 
    return addcslashes($str, "\v\t\n\r\f\"\\/"); 
  }; 
  $out = ""; 
  if (is_object($in)) { 
    $class_vars = get_object_vars(($in)); 
    $arr = array(); 
    foreach ($class_vars as $key => $val) { 
      $arr[$key] = "\"{$_escape($key)}\":\"{$val}\""; 
    } 
    $val = implode(',', $arr); 
    $out .= "{{$val}}"; 
  }elseif (is_array($in)) { 
    $obj = false; 
    $arr = array(); 
    foreach($in AS $key => $val) { 
      if(!is_numeric($key)) { 
        $obj = true; 
      } 
      $arr[$key] = my_json_encode($val); 
    } 
    if($obj) { 
      foreach($arr AS $key => $val) { 
        $arr[$key] = "\"{$_escape($key)}\":{$val}"; 
      } 
      $val = implode(',', $arr); 
      $out .= "{{$val}}"; 
    }else { 
      $val = implode(',', $arr); 
      $out .= "[{$val}]"; 
    } 
  }elseif (is_bool($in)) { 
    $out .= $in ? 'true' : 'false'; 
  }elseif (is_null($in)) { 
    $out .= 'null'; 
  }elseif (is_string($in)) { 
    $out .= "\"{$_escape($in)}\""; 
  }else { 
    $out .= $in; 
  } 
  return "{$out}"; 
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-12 23:38:20 By : PMChin
 


 

No. 7

Guest


ใช้ฟังชั่น my_json_encode หรือ _json_encode ทำให้อ่านไทยได้ ดังรูปที่แนบมา เป็นการทำศัพท์บาลี แสดงผลที่ localhost ได้ แต่ยังไม่แสดงผลบนเซิฟเวอร์ เท่าที่อ่านดู มีหลายราย ที่พบปัญหานี้ (ในกรณีทำเกี่ยวกับดาต้าเบสที่แก้ไข อับเดท

ถ้าเพียงแสดงข้อมูลเฉยๆ ไม่แก้ไข ก็สามารถใช้อีก code แต่ถ้าข้อมูลเยอะๆ จะดีเลย์ (ช้า)

จะลองโหลดมาทดสอบดูก่อนก็ได้ ที่เวบนี้เลย https://jquery-datatables-in-line-editing.googlecode.com/files/CreativePathExample.zip

ใช้ฟังชั่น my_json_encode ทำให้อ่านไทยได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-12 23:57:39 By : PMChin
 


 

No. 8

Guest


วันนี้ได้รู้วิธีบันทึกแล้วไม่เก็บอักขระ ๓ ตัว
โดยใช้คำสั่ง

mysql_query("set names 'utf8'",$gaSql['link']);

$gaSql['link'] เป็นตัวแปรที่ connect กับ mysql server

ที่ http://82.113.152.82/forums/discussion/9455/utf8-data-from-mysql-solved/p1

Json กับการแก้ปัญหาการบันทึกภาษาไทยไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-13 10:26:46 By : PMChin
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Android มีปัญหาเรื่องภาษาไทย กับ php+MSSQL server2008r2 +json ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่