UTF-8 problems PHP/MySQL

后端 未结 7 1122
隐瞒了意图╮
隐瞒了意图╮ 2020-12-05 12:08

I\'ve always used ISO-8859-1 encoding, but I\'m now going over to UTF-8.

Unfortunately I can\'t get it to work.

My MySQL DB is UTF-8, my PHP document is enco

相关标签:
7条回答
  • 2020-12-05 12:16

    After connecting to db, run query SET NAMES UTF8

    $db = new db(...);
    $db->query('set name utf8');
    

    and add this tag to header

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    
    0 讨论(0)
  • 2020-12-05 12:16

    Are you having this error? MySql SELECT UNION Illegal mix of collations Error? Just set you entire mysql to utf 8 then

    SET character_set_connection = utf8;
    
    0 讨论(0)
  • 2020-12-05 12:26

    Make sure the connection to your database is also using this character set:

    $conn = mysql_connect($server, $username, $password);
    mysql_set_charset("UTF8", $conn);
    

    According to the documentation of mysql_set_charset at php.net:

    Note:
    This is the preferred way to change the charset. Using mysql_query() to execute 
    SET NAMES .. is not recommended.
    

    See also: http://nl3.php.net/manual/en/function.mysql-set-charset.php

    Check the character set of your current connection with:

    echo mysql_client_encoding($conn);
    

    See also: http://nl3.php.net/manual/en/function.mysql-client-encoding.php

    If you have done these things and add weird characters to your table, you will see it is displayed correct.

    0 讨论(0)
  • 2020-12-05 12:26

    I had the same problem but now its resolved. Here is the solution:

    1st: update ur table ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    2nd: add this in the head section of the HTML code:

    Regards Saleha A.Latif

    0 讨论(0)
  • 2020-12-05 12:27

    Try this after connecting to mysql:

    mysql_query("SET NAMES 'utf8'");
    

    And encode PHP document in UTF-8 without BOM.

    0 讨论(0)
  • 2020-12-05 12:31

    Remember to set connection encoding to utf8 as well.

    In ext\mysqli do $mysqli->set_charset("utf8")

    In ext\mysql do mysql_set_charset("utf8")

    With other db extensions you might have to run query like SET NAMES 'utf8'

    Some more details about connection encoding in MySQL

    As others point out, making sure your source code is utf-8 encoded also helps. Pay special attention to not having BOM (Byte Order Mark) - it would be sent to browser before any code is executed, so using headers or sessions would become impossible.

    0 讨论(0)
提交回复
热议问题