2012-03-09 49 views
0

我試圖從mysql返回一些特定的文本到textarea中。現在這個從mysql返回的文本有Textarea不顯示來自mysql的希伯來文文本

collation=utf8_unicode_ci 

和字符集是通過在我的PHP文件中添加此行來設置的。

<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-8-i" /> 

無法找出問題在這裏。一切看起來都不錯,但textarea爲什麼不顯示希伯來文?相反,它顯示「???????」 - 問號。

謝謝。

+0

你的mysql連接設置爲UTF8(SET NAMES'uft8')嗎?你的HTML文檔是用UTF-8編碼的嗎? – Thorsten 2012-03-09 13:46:35

+0

對不起,我不知道如何設置一個MySQL連接到utf8。 請您澄清一下嗎? – Prateek 2012-03-09 13:50:31

+0

連接到數據庫之後,您的第一個查詢應該是'SET NAMES'uft8'' – Thorsten 2012-03-09 13:51:43

回答

0

在數據錄入或檢索期間,必須將MySQL配置爲接受unicode(UTF-8)數據。有許多方式,你可以做到這一點

  1. 將這一行上的數據庫連接部分

    mysql_set_charset('utf8',$link); //$link is your connection identifier 
    
  2. 運行charset utf8上CLI

  3. 使用SET NAMES 'utf8'作爲第一個數據庫查詢

此外,在輸出這樣的數據的同時,還應該配置html來理解unicode字符。使用

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 

在顯示頁面的頂部。

+0

放入mysql_set_charset後顯示的字符看起來像 § × × × × § | ¢ , – Prateek 2012-03-09 14:17:12

+0

@Prateek,meta標籤應該是正確的。使用這個''在頁面頂部 – Starx 2012-03-09 14:23:27

+0

Ohh right。謝啦。 – Prateek 2012-03-09 14:45:45

0

試試這個設置。

// encode web page 'utf-8' which holds the input form 
<!DOCTYPE html> 
<html lang="en"><head><meta charset="utf-8"> 

// Form submit from webpage 
$text = stripslashes($_POST['text']); 

// connect to database   
$db = mysql_select_db("$my_databasename",$conn) 
    or die("ERR; Database"); 

// setup UTF-8 on pipe 
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn); 

mysql_query("SET NAMES 'UTF8'"); 

$text = mysql_real_escape_string($text); 

// insert to mysql here 

記得要編碼顯示/返回mysql輸出的網頁。默認情況下,在所有網頁上聲明utf-8編碼是一種很好的做法,除非您有其他理由不這樣做。