字符集 iso-8859-1 在切换 SQL 驱动程序后不起作用

Charset iso-8859-1 not working after switching SQL Drivers

提问人:Kyle Eales 提问时间:3/24/2023 更新时间:3/24/2023 访问量:72

问:

有一个旧的PHP应用程序。SQL 数据库实例从 2012 年移动到 2017 年,在此过程中,我们必须将 sql 驱动程序从“SQL Server”更改为“ODBC Driver 17 for SQL Server”。现在获取问号符号和似乎是编码问题。感觉我已经尝试了一切来让它工作,但没有运气。但是确实发现了一些奇怪的东西,如果我在 sql select 语句中将字段转换为 varchar(8000),它会正确呈现文本。示例如下:

即使视图中的基础字段是 varchar(x) 也不起作用:

SELECT * FROM ExampleView

然而,这似乎确实有效并将文本正确地呈现到屏幕上:

SELECT 
      convert(varchar(8000), ExampleOne) as ExampleOne
     ,convert(varchar(8000),ExampleTwo) as ExampleTwo
     ,convert(varchar(8000),ExampleThree) as ExampleThree
FROM ExampleView
php sql-server utf-8 字符编码 ISO-8859-1

评论

0赞 Thom A 3/24/2023
为什么你在这里也标记了UTF-8?如果要将 UTF-8 数据发送到 SQL Server 2017,则需要先使用 UTF-8 数据,并(理想情况下)将数据转换为 UTF-16。SQL Server 2019 中添加了对 UTF-8 的支持。nvarchar
1赞 Sammitch 3/24/2023
确定它是 ISO-8859-1 而不是 MS cp1252 吗?哪些字符没有正确出现?

答: 暂无答案