【问题标题】:SQL Server cyrillic error in phpphp中的SQL Server西里尔文错误
【发布时间】:2010-11-30 09:09:37
【问题描述】:

首先,我想对我糟糕的英语道歉。

现在解决我的问题。我有一个 SQL Server 数据库,我想用 php 从中获取数据。我可以只执行选择查询,因为数据库不在本地主机上。我必须从这个数据库中获取数据,并且数据是西里尔文。这是我的问题。当我执行mssql_query 并获取数据时,西里尔符号返回为????

我尝试用iconvmb_convert_string 转换字符,但没有成功。

有没有人遇到过类似的问题,你是怎么解决的?

【问题讨论】:

    标签: php sql-server utf-8


    【解决方案1】:

    您的网络服务器和客户端计算机上是否安装了西里尔语语言包?如果您可以直接连接到 SQL Server,您可能只想使用 BCP 命令行实用程序从 SQL Server 导出数据。

    你的最终目标是什么?

    【讨论】:

      【解决方案2】:

      如果返回的字符实际上是问号,那么问题可能出在 DB 端,数据被错误地导入。在这种情况下,您可能无能为力。

      如果返回的字符只是显示为问号,请检查实际字节(例如,通过在字符串上使用 bin2hex)并使用它来确定您收到的编码。您需要告知iconv 正确的编码,否则它的“垃圾输入,垃圾输出”。

      【讨论】:

      • 我试试 iconv(mb_detect_encoding($d['catname']), 'utf-8', $d['catname']), mb_convert_encoding($d['catname'], 'utf -8', mb_detect_encoding($d['catname'])) 和 echo $d['catname'],而我只有 ????当我尝试 bin2hex($d['catname']) 我有 3f3f3f3f3f
      • 如果您在原始字符串中看到 3F 字节,那么进行任何转换都为时已晚;数据已经丢失。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      相关资源
      最近更新 更多