unicode字符在一台服务器上无法正确显示(Azure)

时间:2017-11-07 00:34:09

标签: php sql-server azure unicode

这个问题让我疯了。我有一个测试服务器和一个实时服务器。测试服务器正在显示从Azure sql数据库检索到的unicode字符。虽然运行相同代码访问相同数据的实时服务器未正确显示它们。

数据库中的数据是: Halloichheiße神奇宝贝! Ichwürdeynnemal mit einemanderenKämpfe!

测试服务器显示     Halloichheiße神奇宝贝! Ichwürde等...

实时服务器,即Azure Web服务     Halloichhei ePok mon! Ichw rdeynnemal mit einemanderenK mpfe

相同的PHP代码,相同的数据库,相同的浏览器,相同的数据库连接字符串, 不同的Web服务器,结果不同。

我知道Azure运行的是PHP 5.6,测试服务器运行的是PHP 5.3 他们正在使用sqlsrv_connect 数据字段是类型varchar。

我尝试使用“CharacterSet”=>连接中的“UTF-8”,但这对Azure服务器没有任何影响,并将结果搞砸在测试服务器上。

我缺乏想法和领导。

2 个答案:

答案 0 :(得分:0)

当您的应用程序在Azure App Service上运行时,您可以尝试以下选项:

  • 在PHP页面中设置:

    header('Content-Type: text/html; charset=UTF-8');
    
  • 使用以下内容创建名为.user.ini/wwwroot目录的文件:

    default_charset = "UTF-8"
    
  • responseEncoding文件中设置globalization elementweb.config属性:

    <configuration>
        <system.web>
            <globalization 
                requestEncoding="utf-8"
                responseEncoding="utf-8"/>
        </system.web>
    </configuration>
    

更多内容: UTF-8 all the way through

答案 1 :(得分:0)

我发誓我以前尝过这个,但事实证明这是答案

"CharacterSet" => "UTF-8"

添加到连接字符串,

<meta charset="UTF-8">

在网页中。