首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时使用MySQL和ODBC- on 400的WAMP中的UTF-8问题

问同时使用MySQL和ODBC- on 400的WAMP中的UTF-8问题
EN

Stack Overflow用户
提问于 2020-08-19 06:28:31
回答 1查看 406关注 0票数 0

目前我有这样的配置:服务器Windows2008APACHE 2.4.23,PHP5.6.25,R2 5.7.14

我正在将我的应用程序移植到一个新的应用程序上:服务器Windows2019数据中心、Apache2.4.41、PHP7.4.0、MySQL 8.0.18。

我“复制”了一些我所知道的有关Apache、PHP、MySQL、headers的配置,特别是那些引用字符编码的配置,比如php.ini上的缺省字符集=iso-8859-1,httpd.conf上的AddDefaultCharset UTF-8,MySQL上的utf8mb4_general_ci排序规则,content="text/html;头上的charset=UTF-8“。

在这两种情况下,我都用相同的参数配置了一个ODBC,它的iSeries驱动程序指向一个AS400数据库。

要与db连接,我使用PDO,没有字符集参数。

在实际系统中,我没有遇到特殊的char问题,比如à,°,欧元:我从两个db读取,在html页面上显示。有些应用程序只使用MySQL,其他应用程序只使用ODBC,另一些应用程序同时使用:我从AS400获得字符串并保存在MySQL上。

在新系统上,我不能拥有相同的功能,因为默认的_charset=iso-8859-1只有ODBC应用程序运行良好,但是MySQL的显示错误像°as°或“as°”,如果我设置默认值_charset=utf-8 MySQL应用程序运行良好,而ODBC°变成了�,所以我无法从AS400获取字符串并将它们保存在MySQL上。

我的应用程序非常简单(不涉及框架),因此两个系统上的PHP代码都是相同的(稍后我会对其进行改进)。

我想我正在失去一些配置:一些建议?

谢谢

PS:请告诉我,如果有其他的信息,可以帮助了解一个解决方案。

编辑

作为准时的解决方案,我可以使用默认的字符集=utf-8,使用utf8_encode和来自ODBC的字符串,但是在更改所有代码之前,我将尝试找到一个全局解决方案。

编辑2:应用程序

根据要求,我在我的应用上提供了一些额外的信息,如果有用的话。

  • AS400 db由ERP管理,因此我只在读取模式下使用它。一些应用程序通过PDO和显示结果(如销售)发送查询。
  • MySQL db用于存储不是由ERP管理的数据(如质量)。应用程序使用用户插入的数据通过PDO进行CRUD操作。
  • 混合应用程序从AS400 (如产品)检索一些数据,在MySQL上创建用户的数据和保存在MySQL上,以包含AS400表的视图(以获得更好的响应)。一个应用程序定期从AS400获取数据并存储在MySQL.

上。

编辑3:关于mysql驱动程序/连接/配置

在使用具有回波'°‘和具有以下结果的print_r($mysql_data)的相同代码进行测试之后:

  • #en0#:echo=>°echo=>°print_r=>°

我确信“问题”在MySQL连接上,也许是我设置的、不记得的东西:-

EN

回答 1

Stack Overflow用户

发布于 2020-10-01 09:20:21

我在这里报告解决办法,以防其他人面临同样的问题。由于有一个在处理字符集上将我与MySQL 8与5.7的差异(https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html#charset-connection-error-handling)联系在一起(“utf8mb4的默认排序规则在MySQL 5.7和8.0之间不同”),我将v.8替换为v.5.7,一切顺利。

好的,这不是一般的“解决方案”,而只是确认问题在MySQL 8/PHP互连的“配置”中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63481162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档