2010-09-07 72 views
0

我有一個非英文字符的excel文件。當我打開excel文件時,我得到隨機英文字符。但是,當我將字體更改爲該語言時,我可以閱讀有效的文本。在mysql中插入和顯示非英文字體

但問題是,當我從該excel文件的數據加載到MySQL通過PHP,我只得到那些隨機的英文字符。我沒有得到我想要的語言,無論是MySQL或PHP。 PHP-MySQL連接後

mysql_query('SET collation_server=utf8_general_ci'); 
mysql_query('SET collation_connection=utf8_general_ci'); 
mysql_query('SET collation_database=utf8_general_ci'); 

mysql_query('SET character_set_server = utf8'); 
mysql_query('SET character_set_database = utf8'); 
mysql_query('SET character_set_results = utf8'); 
mysql_query('SET character_set_client = utf8'); 
mysql_query('SET character_set_connection=utf8'); 
mysql_query('SET names utf8;'); 
mysql_query('SET character_set utf8;'); 

我改變的字符集爲UTF-8在MySQL和也可使用。

我該如何在瀏覽器中自動顯示字體? 順便說一句,如果我改變瀏覽器的字體,我可以閱讀有效的文本。

謝謝。

+0

請在含有這些「隨機字符」(例如一列中的十六進制轉儲:'SELECT HEX(列)WHERE ...',告訴我們你得到了什麼 – NullUserException 2010-09-07 19:16:25

+0

我得到這個:62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B – jest 2010-09-07 19:20:13

+2

^h你是否用'PHP'導入'Excel'文件?你使用哪些庫/擴展來讀取文件? – Quassnoi 2010-09-07 19:22:59

回答

0

如果你真的要改變一個特定的字體來顯示字符(而不是僅僅設置正確的編碼),那麼你所擁有的是一個特定的字體定製「視覺編碼」,其中的人物參與正常的ASCII字符,但映射到字體中字符的字形看起來不像那些ASCII字符。

這是一個可怕的,可怕的黑客攻擊,無法在互聯網上工作。在過去的時代(Unicode之前)有時需要代表那些沒有官方編碼的非常規語言,但現在幾乎所有的代碼都有正確的代碼點。

如果這就是你正在談論的,恐怕你將不得不通過每個ASCII字符,看看它映射到的字形,並找出Unicode代碼指向的字符字形確實是表示的是。這將爲您提供自定義字體到Unicode的映射,您必須使用它來將所有數據從當前格式轉換而來。

那麼什麼是語言,字體是什麼?

(除了:使用mysql_set_charset()設置從PHP MySQL連接編碼器,代替上述任何語句。)