Resolving incorrect character encoding when displaying MySQL database results after upgrade to PHP 5.3

前端 未结 3 566
天涯浪人
天涯浪人 2021-01-04 19:19

Issue Description

After upgrading PHP on our development server from 5.2 to 5.3, we\'re encountering an issue where data requested from our database and displayed

3条回答
  •  一个人的身影
    2021-01-04 19:55

    I had similar issue after upgrading PHP from 5.2.3 to 5.3.5 (5.3.5-Win32-VC6-x86), MySQL 5.0.41 (not updated). I think that reason is a little difference between PHP versions.

    PHP 5.2.3 default (without SET NAMES):
    character_set_client = latin1
    character_set_connection = latin1
    character_set_database = utf8
    character_set_filesystem = binary
    character_set_results = latin1
    character_set_server = latin2
    character_set_system = utf8
    collation_connection = latin1_swedish_ci
    collation_database = utf8_polish_ci
    collation_server = latin2_general_ci

    PHP 5.3.5 default (without SET NAMES):
    character_set_client = latin2
    character_set_connection = latin2
    character_set_database = utf8
    character_set_filesystem = binary
    character_set_results = latin2
    character_set_server = latin2
    character_set_system = utf8
    collation_connection = latin2_general_ci
    collation_database = utf8_polish_ci
    collation_server = latin2_general_ci

    I added data to database in PHP 5.2.3 default (without SET NAMES), so now to display it correctly I must read it using:

    $pdo -> query("SET NAMES 'latin1'");
    

    Maybe something similar is reason of your problem.

提交回复
热议问题