问题描述
我有mysql 8,其编码为'utf8_general_ci'。我来自斯洛伐克,因此我们有很多特殊字符,包括“ľ,š,č,ť,á...”。我也有用php实现的rest api。这是问题所在。当我发送带有数据的发布请求时,php会适当地保存记录,并且可以通过phpmyadmin清楚地看到它。但是,当我发送GET请求时,特殊字符被替换为``。
因此,这显然是编码问题。但这是要抓住的地方,我浏览了一些站点,并添加了似乎必要的所有内容:
-
mysql的编码为:'utf8_general_ci'
-
数据库连接如下:
$ this-> conn =新的PDO($ dsn,$ this->用户名,$ this->密码);
$ this-> conn-> setAttribute(PDO :: MYSQL_ATTR_INIT_COMMAND,“ SET NAMES'utf8'”);
-
从php发送的标头:
header(“ Access-Control-Allow-Origin:https://domain.sk/");
header(“ Content-Type:application / json; charset = utf-8”);
header(“ Access-Control-Allow-Methods:GET”);
header(“ Access-Control-Max-Age:3600”);
header(“ Access-Control-Allow-Headers:Content-Type;访问控制-Allow-Header,授权,X-Requested-With”);
-
在前端,我正在使用react和index.html(内部版本)中的meta标签类似于以下内容:
<html lang="en"><head><meta charset="utf-8"/><link rel="
-
还设置了
-
php.ini:
default_charset =“ utf-8”;
即使所有这些都无法正常工作。 Mysql当然会存储正确的值,但是为什么php rest api服务器也没有返回正确的值?顺便说一下,php脚本也是用UTF-8编写的。
在本地,一切都很好。
我非常感谢任何评论,因为我正式用尽了其他任何想法。
非常感谢您的帮助。这对我来说确实意味着一个世界!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)