Php,Mysql和UTF8有问题

问题描述:

问题,简单而烦人。Php,Mysql和UTF8有问题


我只是试图打印从我的mysql数据库收集的名称列表。

PHP文件保存在utf8中,数据库和表被设置为使用utf8。例如,仍然是'ä,ö',输出为 。不能相信我仍然有这个问题。

enter image description here

当然,Latin1的解决了这个问题。问题是我必须使用utf8,因为我正在做一些json_encode来将数据发送到ajax脚本。

enter image description here

任何想法,在地球上有什么地方出错了?

在返回数据之前,我应该将数据转换为utf8吗?似乎不可思议我应该有..

+3

发布的代码强制他人的图片重新输入所有的代码,如果他们想测试它,几乎不提供附加价值。 – 2011-05-18 12:06:35

转换utf8_general_ciutf8_unicode_ci ...

尝试运行SET NAMES UTF8查询您连接到数据库后...

function connect($server, $database, $username, $password, $charset = "UTF8"){ 
    $link = mysql_connect($server, $database, $password); 
    if(!$link){ 
     die("Unable to connect to database server."); 
    } 
    mysql_selectdb($database); 
    if(function_exists("mysql_set_charset")){ 
     mysql_set_charset($charset, $link); 
    }else{ 
     mysql_query("SET NAMES $charset"); 
    } 
} 

另外,还要确保你有这个(或通过头())在你的HTML ...

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
+0

对不起,但这没有任何区别。 – Xavio 2011-05-18 11:46:46

+1

@Xavio,在phpMyAdmin中运行查询返回正确的编码数据?如果是这样,那么它必须连接...尝试运行'mysqli_set_charset($ link,“UTF8”)'...如果它是UTF8,还检查表格整理... http://pokit.etf.ba/get/ 8ce9605f0dd798a232889822065286da.png ...设置为UNICODE不通用,然后重试... – 2011-05-18 11:50:56

+0

是的,在PhpMyAdmin中看起来不错。如果我甚至在从我的函数返回之前我print_r,它看起来堰.... OH。那个litle片段实际上做到了!把它放在我的sqlConnect()函数中。现在工作正常。 Sorta奇怪,我需要它吗?..因为我已经把所有东西都设置为utf8。但是要检查一下Unicode/General。 – Xavio 2011-05-18 12:02:41

两两件事要做...

将您的姓名到数组时

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

  • 使用utf_encode()

    1. 确保您的HTML头发送正确的字符集。在该行应

      $guests[] = array_map('utf8_encode', $row);

  • +0

    如果我直接添加名称,比如说,PhpMyAdmin?那是个坏主意? – Xavio 2011-05-18 11:58:01

    +0

    不,这很好......我会重新翻译我的答案 – JamesHalsall 2011-05-18 11:59:06

    +0

    @Jaitsu,做这个不好主意。 – 2011-05-18 12:06:05