我不确定这是一个php-,filemaker-,mysql-还是odbc驱动程序问题。
出于安全原因,我当前的php webform的输入字段将特殊字符转换为十六进制代码,(例如:#core '
)此十六进制代码保存在数据库中,并且也将在Filemaker11中显示为十六进制代码这不是我想要的。
如何确保特殊字符显示应该是什么?
反过来(从filemaker到db),在插入特殊字符时不会进行任何转换。
如何确保一切都一致?
亲切的问候, 的Jeroen
答案 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()
撤消它。但我强烈建议你先弄清楚为什么会发生这种情况。