我有使用 UT8 编码的 Flex 应用程序。它正在发送回服务器 (PHP),并将数据写入 Mysql(UT8 字符集,utf8_general_ci)。我在从/向数据库写入/读取 Umlaute 时完全没有问题。
通过使用 PHPmyadmin 查看数据,我才意识到元音以某种方式转换为:
ö => ö¶ ü => ¼ 等
正如我所说,我完全没有问题。奇怪的是,当我直接用PHPmyAdmin将Umlaute写入数据库时,它们显示正确
现在我正在打印 PDF,我需要对所有值调用 ut8_decode() 以正确显示它们。但是,手动输入到数据库中的那些(在 phpmyadmin 中正确显示)不会被解码。
我假设那些没有写入 UT8 中的 Db,因为解码会使它们变形?
- )但为什么 UT8 编码值首先以这种奇怪的方式显示在数据库中? 2.) 如何使用 PHPmyAdmin 以 UTF 编码将数据输入到 mysql 中? (我已将连接设置为 ut8)。
谢谢, 马丁
最佳答案
我在同一个问题上挣扎了很长时间。连接到数据库后立即运行此查询,您的 Web 应用程序将显示字符,因为它们出现在 phpmyadmin 中:
设置名称 'utf8'
出于某种原因,MySQL 在我的系统上设置为假定输入和输出编码为 latin1,这意味着当我向它发送 utf8 输入时,它错误地将其存储在数据库中,但由于输出的转换是相反的,所以困惑已撤消并在浏览器中正确显示(使用 phpmyadmin 时除外,它会如实显示)。仅当转换结果为存储它的数据库字段中使用的字符集所允许的字符时,才会出现这种情况,因此除非您阻止上述查询发生此转换,否则您可能会出错。
关于php - Mysql/Phpmyadmin 中的德语元音变音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1053258/