  | 
              
	              
	                
  
    
	 
        มีปัญหากับการแสดงข้อมูลภาษาไทยจาก Sql Server ใช้ php ค่ะ รบกวนขอคำแนะนำจากพี่ๆ ด้วยค่ะ     | 
   
  
    |   | 
   
 
 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Field type เป็นะไรครับ 
Nvarchar 
หรือ 
Varchar 
 
ภาษาไทยจะใช้ Unicode nvarchar 
 
น่าจะผิดตั้งแต่นำข้อมูลเข้า 
 
ถ้ายังแก้ไม่ได้ผมกลับบ้านก่อนจะสอนวิธี convert ให้                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-10-18 19:02:54 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 แสดงโค๊ดทั้งสองที่ ที่ได้และไม่ได้ มาดูหน่อยครับ คือถ้าได้ก็ควรจะได้ทั้งสองที่ 
น่าจะลองเปรียบเทียบ ทั้งสองที่ดูว่าอะไรต่างกัน 
 
และก็ขอดูโค๊ดที่เอาข้อมูลภาษาไทยเข้า database ด้วยครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-10-19 09:13:52 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ชื่อแสดงภาษาไทยได้ค่ะ 
  
 
Code นะคะ 
  
 
ประเภทชุด ต้องแสดงคำว่า ขาว หรือ ช่าง แต่ออกมาเป็น ???  
  
 
Code นะคะ  
  
 
set header  
  
 
แสดงชื่อกับชุด อยู่ในหน้าเดียวกันนะคะ  
อันที่เป็นหัวข้อคำถาม จะอยู่อีกหน้านึง ติดปัญหาเหมือนกันค่ะพี่                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2017-10-19 09:30:25 2017-10-19 09:33:43              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-10-19 09:28:18 | 
                        By :
                            natthanichaB | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 มี ssms ไหมครับ (sql server management tools) 
เปิดตาราง ดูว่าอ่านไทยได้ทั้งสอง ฟีลด์ไหม 
เอาตรงนี้ก่อนถ้า ssms อ่านไทยได้ทั้งสองฟีลด์ ก็ต้องดู fieldtype ของทั้งสอง ว่าเป็น nvarchar เหมือนกันไหม 
 
ผมสงสัย แล้วชื่อไทยของตัวคุณเองเอาเข้าไปตอนไหน หรือเอาเข้าไปตรงๆ จาก ssms ไม่ได้ผ่าน php                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2017-10-20 05:05:38              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-10-19 10:35:44 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เรามาทำความเข้าใจใหม่กันก่อนนะครับ ผมเองก็สับสนไม่ได้เจอปัญหานานแล้ว  
และไม่ได้ใช้ odbc ซะด้วย ใช้แต่คำสั่ง sqlsrv พอดีไปเปิด ไฟล์เก่าๆ ของจริงดู 
 
1 set charset ใน php_ini หรือ ใช้คำสั่ง (แนะนำให้ใช้คำสั่ง ไม่ต้องไปยุ่งกับ php.ini ) 
Code (PHP) 
ini_set('mssql.charset', 'utf-8');
 
 
2 รูปแบบของ collation ไม่ว่าชนิดใด จะไม่มีผลกับ fieldtype 3 ตัวนี้ nvarchar, nchar, ntext 
เพราะทั้ง 3 ตัวนี้เก็บข้อมูลในรูปแบบ unicode ซึ่งรองรับ ทุกภาษา ที่เป็น utf-8 
 
3 ต้องนำเข้าข้อมูลโดยต้องมี N นำหน้าข้อมูลเพื่อบอกว่าเป็น unicode เช่น N'ข้อมูล ที่เป็น utf-8' 
ใน ssms กรณีใช้ tools edit ใส่ให้อัตโนมัต 
 
4 ต้องนำเสนอข้อมูลบน browser โดยกำหนด head meta charset='utf-8' 
โดยไม่จำเป็นต้องใช้ iconv ในการแปลงข้อมูล เพราะข้อมูลเป็น utf-8 อยู่แล้ว 
Code (PHP) 
<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
 
 
ที่นี้อยากศึกษา odbc_connect เกี่ยวกับกำหนด client charset เป็น utf-8 ลองดูตัวอย่างนี้ 
http://www.easysoft.com/support/kb/kb01072.html                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-10-20 06:22:20 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 การใช้ iconv ถือว่ายังไม่ใช้วิธีที่ถูกต้องสำหรับภาษาไทยครับ  
 
                         
               
               | 
             
            
              
			  			  
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-10-20 13:29:38 | 
                        By :
                            mr.win | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เพิ่ม N หน้าชื่อ Field ที่ Select ลองดูนะครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-10-20 14:46:43 | 
                        By :
                            Krungsri | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 จริงๆ ควรจะเช็คก่อนตอน insert นั้นใส่ N ไหม 
จากนั้น เช็คไฟล์ php ว่า file encoding เป็น utf-8 อยู่หรือว่าเป็น ansi (western) แค่ header กำหนด char set มันไม่พอ 
 
แม้แต่ไฟล์ที่เป็น form ส่งเข้ามา save ก็ต้องเป็น utf-8 ด้วย 
 
รายละเอียดมันยิบย่อย แต่ถ้าเข้าใจมัน เราจะไม่เจอปัญหานี้อีกเลย                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-10-22 03:09:48 | 
                        By :
                            PlaKriM | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                   ตอบความคิดเห็นที่ : 10 เขียนโดย : natthanichaB เมื่อวันที่ 2017-10-20 12:02:00 
รายละเอียดของการตอบ ::
  ช่วยดูให้หน่อยได้มั้ยคะว่าต้องแก้ต้องไหนบ้าง เพราะตอนนี้ติดปัญหาเหมือนกัน  
อันนี้เป็นcode insert SQL
 Code (PHP)
 		$targetfolder = "upload/";
		$targetfolder = $targetfolder . basename( $_FILES['file']['name']) ;
		$ok=1;
		$file_type=$_FILES['file']['type'];
	echo $sql="insert into detail (topic,picture,datetime) 
			values ('$_POST[topic]','$filename','$time')";
			$query = odbc_exec($link,$sql);
	if ($file_type=="application/pdf" || $file_type=="image/gif" || $file_type=="image/jpeg") {
 		if(move_uploaded_file($_FILES['file']['tmp_name'], $targetfolder)){
			 $filename = $_FILES['file']['name'];
			 $time= date('Y-m-d H:i:s');
			echo $sql="insert into detail (topic,picture,datetime) 
			values ('$_POST[topic]','$filename','$time')";
			$query = odbc_exec($link,$sql);
			//exit;
				 ?>
            <script>
			//alert('hello');
            window.location.replace("http://192.168.0.120:8099/kulthorn/hp/filehr/management.php");
			//return false;
            
			</script>
        <?php
			}else {
				echo "Problem uploading file";
			}
	}else {
		//echo "You may only upload PDFs, JPEGs or GIF files.<br>";
	}
	$link->close;
ส่วนอีนนี้เป็นcode file connectค่ะ
 Code (PHP)
<?php
$user = 'sa';
$pass = 'x5152535490';
$server = '192.168.0.120';
$database = 'hr_upload_file';
// No changes needed from now on
$connection_string = "DRIVER={SQL Server};SERVER=$server;DATABASE=$database;Client_CSet=UTF-8;Server_CSet=Windows-1251";
 
$link = odbc_connect($connection_string,$user,$pass);
if ($link) {
    //echo "Connection established.";
} else{
    die("Connection could not be established.");
}
?>
charset ใช้แบบนี้ค่ะ  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
แก้หลายรอบละไม่ได้สักที 
ถ้าไม่รบกวนขอดูโค๊ดได้ไหมจะได้นำไปประยุกต์
                         
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-08-18 08:34:11 | 
                        By :
                            mewhappy | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |