gpt4 book ai didi

PHP + MS SQL Server 字符编码

转载 作者:行者123 更新时间:2023-12-03 21:37:27 24 4
gpt4 key购买 nike

我的 Ubuntu Linux 服务器上有一个 Codeigniter 项目。
我不使用 MySQL,因为我连接的是 Microsoft SQL 2014 Express Server。 (我在 Linux 服务器上使用 FreeTDS)
FreeTDS 工作正常,我可以连接 MS SQL 服务器,但是字符编码有问题。
我在 MS SQL 服务器中使用 Hungarian_CI_AS 排序规则,在 FreeTDS(客户端字符集 = UTF-8)和 Codgniter 上使用 UTF-8。

问题:我有 MS SQL 字段内容:Igazgatósági előterjesztések
这在 SQL 查询之后显示:Igazgat�s�gi el?terjeszt�sek
(它不显示匈牙利字符 ó、á、ő、é 等)
我认为这是 UTF-8 问题。我寻找了这个问题,但我没有找到任何好的提示。我试过 ini_set('mssql.charset', 'UTF-8');在 php.ini 上,但这不起作用。
我尝试在查询后转换字符串。例如:UTF-8 到 ISO8859-1 和 UCS2 到 UTF-8 和 UCS2 到 ISO8859-1 等。
当 í、ó、ú、é 字符有效,而 ő 字符无效时,效果最佳。

解决办法是什么? MS SQL Server 使用哪种字符编码?
如何转换这个字符串才能工作?

最佳答案

首先,请检查您是否可以输入该字符,因为某些工具与您的应用程序不同,例如 SQL Server Management Studio,然后将其保存在表中并创建一个带有变量的存储过程,例如,保存,该字符,在这两种情况下,如果您都能正确看到字符,请按照以下步骤操作:

  • 为特殊字符添加一些标识符以替换应用程序中的特殊字符,例如,如果您需要用双尖号保存“o”,请替换为“_1”(想一个更好的主意:P 作为标识符)。
  • 编写一个存储过程,用双尖号再次替换该“o”的“_1”,但是,由于 SQL Server,您直接在存储过程的代码中编写该字符。

  • 这是一个有点肮脏的工作,取决于您是否可以将该字符直接键入到 SQL Server。我以前遇到过这样的问题,我不记得确切的最终解决方案,但我记得这个让我继续努力寻找最终解决方案的技巧。
    另外:您是否检查了存储字符的列的类型?无论如何,从一开始就开始尝试。

    关于PHP + MS SQL Server 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508621/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com