【问题标题】:Convert French_CI_AS (ASCII) to UTF8将 French_CI_AS (ASCII) 转换为 UTF8
【发布时间】:2023-03-31 20:06:01
【问题描述】:

我想将数据从 SQL Server (ASCII) 转换为 UTF-8。

当我使用查询时:

SELECT SERVERPROPERTY('Collation')

结果是“French_CI_AS”(所以,ASCII)

当我使用 Symfony 的 DBAL 从远程数据库获取用户,然后显示给他们时,重音看起来像这样:

安吉丽娜

我试过了:

utf8_encode($value)

但它仅适用于 ISO-8859-1...

所以我尝试了:

iconv("French_CI_AS", "UTF-8", $value)

或者:

iconv("ASCII", "UTF-8", $value)

但它似乎不起作用......

我的元模板是:

<meta charset="utf-8" />

那么,将用户名从 ASCII 转换为 UTF-8 有什么想法吗?

【问题讨论】:

  • Collation 未编码。
  • 我不明白其中的区别。当我用谷歌搜索“如何知道 MS SQL 中使用了哪种编码”时,它返回给我很多结果,人们使用排序规则来知道...
  • 编码是文本的存储方式。排序规则是文本的排序方式。
  • 好的,谢谢你的提示。 :-)

标签: php sql-server encoding utf-8 ascii


【解决方案1】:

据我所知,ASCII 不能存储FrenchMSDN 建议 French_CI_AS 使用 Windows-1252 作为编码。试试吧。

在任何情况下,您的数据库库都应该自动处理这些问题。您可能未能提供连接编码。

【讨论】:

  • 使用 iconv("WINDOWS-1252", "UTF-8", $value);或 mb_convert_encoding($value, "UTF-8", "WINDOWS-1252");没有改变任何东西......或者也许我失败了?我使用 Symfony 和一个 config.yml 文件,但如果我写 charset: UTF8 它不会改变任何东西。我在 Debian 上,我使用 Linux 的 MS SQL 驱动程序连接到远程数据库...
猜你喜欢
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 2017-03-30
  • 2012-01-09
  • 1970-01-01
  • 2018-05-01
相关资源
最近更新 更多