Mac Chrome 和 Mac Safari 生成不同的 unicode

Mac Chrome and Mac Safari produces different unicodes

我正在处理一个遗留项目,我们将 Java 6 与 Spring、Grails 等一起使用

我 运行 遇到的问题是我有一个文件上传表单,我们支持德语文件名。 在这种情况下,我有一个名为“für”的文件,我现在遇到了困难。

我已经尝试将其转换为 unicode 以查看是否解决了问题,但我现在能够明白为什么会出现问题。 在 Mac Chrome 上,它生成 U+308,而在 Mac Safari 上,它生成 U+00FC,在 Safari 上它可以正常工作并正确插入 MySQL,另一个失败。

来自 MySQL 的错误:

#1366 - Incorrect string value: '\xCC\x88r' for column `name` at row 1

当我尝试 运行 这个代码时:

UPDATE `X` SET `name` = 'für' WHERE `skabelon`.`id` = 1302

为什么会有差异,我该如何解决它才能在 Mac 上与 Chrome 一起使用? Windows 和 Ubuntu Chrome 完美无缺。

更新
规范化字符串后它现在可以工作了。

我在 Java 中对其进行归一化后,它就起作用了。以前从来不知道我需要它。

我使用了 java.text

中的标准化器
Normalizer.normalize("String",  Normalizer.Form.NFC)