在mysql中插入和显示非英文字体

时间:2010-09-07 19:14:34

标签: php mysql

我有一个包含非英文字符的excel文件。当我打开excel文件时,我会得到随机的英文字符。但是当我将字体更改为该语言时,我可以阅读有效文本。

但问题是,当我通过php将该excel文件中的数据加载到mysql时,我只得到那些随机的英文字符。我没有在mysql或php中获得我想要的语言。

我在mysql中将字符集更改为utf-8,并且还使用了:

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;');

在php-mysql连接之后。

如何在浏览器中自动显示字体? 顺便说一句,如果我更改浏览器的字体,我可以阅读有效文本。

感谢。

1 个答案:

答案 0 :(得分:0)

如果您真的需要更改为特定字体来显示字符(而不仅仅是正确设置编码),那么您所拥有的是特定于字体的自定义“可视编码”,其中涉及的字符普通的ASCII字符,但映射到字体中这些字符的字形看起来不像那些ASCII字符。

这是一个可怕的,可怕的黑客,它永远无法在互联网上运行。在过去(Unicode之前)有时需要表示没有官方编码的异常语言,但现在几乎所有语言都有正确的代码点。

如果这就是你所说的,我担心你将不得不浏览每个ASCII字符,查看它映射到的字形,并找出Unicode字符指向字符的字符是什么真的代表的是。这将为您提供自定义字体到Unicode映射,您必须使用它来转换当前格式的所有数据。

那么语言是什么,字体是什么?

(除了:使用mysql_set_charset()从PHP设置MySQL连接编码,而不是上面的任何语句。)