我有UT8编码的Flex应用程序.它正在发送回服务器(PHP),并且数据被写入MysqL(UT8字符集,utf8_general_ci).我完全没有问题,可以在数据库中读写Umlaute.
通过使用PHPmyadmin查看数据,我才意识到Umlaute会以某种方式转换为:
ö=>一种¶
ü=>那张
等等
正如我所说,我一点都没有问题.奇怪的是,当我用PHPmyAdmin直接将Umlaute写入数据库时,它们可以正确显示
现在,我正在打印PDF,并且需要在所有值上调用ut8_decode()才能正确显示它们.但是,那些手动输入到数据库中的文件(在PHPmyadmin中正确显示)不会被解码.
我以为那是因为解码格式不正确,所以这些未写入UT8的Db中?
但是)为什么首先以这种奇怪的方式在数据库中显示UT8编码的值?
2.)如何使用UTF编码的PHPmyAdmin将数据输入MysqL? (我已将连接设置为ut8).
谢谢,
马丁
解决方法:
我在同一个问题上苦苦挣扎了很长时间.连接到数据库后立即运行此查询,您的Web应用程序将显示与PHPmyadmin中显示的字符相同的字符:
设置名称“ utf8”
由于某些原因,在我的系统上设置了MysqL以假定输入和输出被编码为latin1,这意味着当我将utf8输入发送给它时,它会错误地将其存储在数据库中,但是由于转换是针对输出进行的,因此混乱被撤消了,它会在浏览器中正确显示(使用PHPmyadmin时除外,它会如实显示).仅当转换导致存储该数据库字段中使用的字符集所允许的字符时才如此,因此除非在上述查询中停止此转换,否则您将得到错误.