我先说下我的环境:
[td]Server
[/td][td]Apache/2.4.23 (Win32) PHP/5.6.28
1. 操作系统 Windows7 Professional
[/td][td]
[/td][td]
[/td]
2. DB2数据库的编码
3. DB2CODEPAGE已经设置并重启,Apache在之后重启。
4.这是用DataStudio链接数据库看到的数据。也是PHP插入的数据。
5. 这是Web的数据,和PHP中VarDump结果一致。
6. 这个是数据库的报错。查询过这个错误代码也仔细查看过。有时候的解决方法是删掉几个中文字符就能插入进去,但是我字段设置的很宽。就这几个中文字符是不可能超出的。 另外 SQLSTATE 前面的字符不知道为什么也是有个乱码。注意 Header部分也是UTF-8.
7. 可以这么说吧,数据库实例编码是UTF-8,PHP编码也是UTF-8.,除了操作系统是Windows7 英文版。
我在接收$_POST数据的地方,用mb检测编码是CP936, 组装好的SQL 检测也是cp936.
哪里的根源呢?