带有奇怪UTF8符号的URL

时间:2015-03-16 14:47:25

标签: nginx utf-8

在nginx上,我的文件/网址包含德语单词“frühling”。

从Mac + Safari访问网址时出现问题。

我复制/粘贴了两个网址 - 正确的一个和Mac中的一个,结果如下:

[nmmm@zenbook ~]$ cat > a
frühling
^C
[nmmm@zenbook ~]$ cat > b
frühling
^C
[nmmm@zenbook ~]$ xxd a
0000000: 66 72 75 cc 88 68 6c 69 6e 67 0a              fru..hling.
[nmmm@zenbook ~]$ xxd b
0000000: 66 72 c3 bc    68 6c 69 6e 67 0a              fr..hling.

“a”是正确的,“b”是不正确的。似乎差异就在变音符号“ü”之后,还有正常的“ u ”。变形金刚“ü”也有所不同。

这个符号来自哪里? 我的客户有时会使用MsWord或LibreOffice来准备这些东西。 有没有办法让nginx以某种方式处理(重构)它?

1 个答案:

答案 0 :(得分:0)

搜索Google我发现以下内容: https://coderwall.com/p/gc079w/debugging-encodings-and-character-sets

似乎有两种方法可以解决你的问题:

  

正确的utf8编码是(你会在hexdump中看到 c3 bc ):

U+00FC  ü  c3 bc   LATIN SMALL LETTER U WITH DIA.
     

有效的UTF-8字符序列,显示相同但不是   一个“ü”(再次,在hexdump中75 cc 88):

U+0075  u   75      LATIN SMALL LETTER U
U+0308  ̈    cc 88   COMBINING DIAERESIS

<强>更新

使用find你可以找到所有带有正确或错误变音符号的文件,以“正常”方式工作:

find . -name '*ü*'

但是你需要复制/粘贴正确的变音符号“方式”或制作bash文件。

我正在创建符号链接的可能解决方案,可以使用find的输出完成。

(仍在寻找如何从nginx级别修复此问题)