如何在mysql和filemaker之间获得正确的字符编码

时间:2011-07-27 08:34:05

标签: php character-encoding filemaker

我不确定这是一个php-,filemaker-,mysql-还是odbc驱动程序问题。

出于安全原因,我当前的php webform的输入字段将特殊字符转换为十六进制代码,(例如:#core ')此十六进制代码保存在数据库中,并且也将在Filemaker11中显示为十六进制代码这不是我想要的。 如何确保特殊字符显示应该是什么?

反过来(从filemaker到db),在插入特殊字符时不会进行任何转换。

如何确保一切都一致?

亲切的问候, 的Jeroen

3 个答案:

答案 0 :(得分:1)

FileMaker只显示存储在MySQL中的数据。如果您在像PhpMyAdmin这样的工具中提取数据库,您应该会看到varchar也包含编码。由于FMP仅将其视为文本字段,因此它显示了存储的编码。如果要在FMP中解码,可以显示varchar的calc字段,该字段具有用于解码文本的自定义函数。 (但这不允许更新数据..)您还可以尝试在记录加载时触发,以解码字段中的数据,以便您可以正确地查看/编辑。

答案 1 :(得分:1)

解决了!看来我必须在我的PHP脚本中添加一行额外的行。

设置连接后,php需要告诉mysql编码需要什么。这可以通过以下行完成:

$dbh->query("SET NAMES 'utf8'");

谢谢你的努力!

答案 2 :(得分:0)

此:'类型的编码不是由浏览器自动完成的。有事正在做。通常只在输出而不在输入上进行。

您可以使用html_entity_decode()撤消它。但我强烈建议你先弄清楚为什么会发生这种情况。