Encoding wkhtmltopdf html url编码(德语umlaut)

Encoding wkhtmltopdf html url编码(德语umlaut),encoding,utf-8,wkhtmltopdf,Encoding,Utf 8,Wkhtmltopdf,在linux控制台上对以下.pdf转换进行编码失败,并显示“ContentNotFoundError” 启用UTF-8字符集的lynx中存在相同问题: The requested URL /möja.html was not found on this server. 区域设置采用utf-8格式。Console正在正确键入德语特殊字符 LANG=de_DE.UTF-8 LANGUAGE= LC_CTYPE="de_DE.UTF-8" LC_NUMERIC="de_DE.UTF-8" LC_T

在linux控制台上对以下.pdf转换进行编码失败,并显示“ContentNotFoundError”

启用UTF-8字符集的lynx中存在相同问题:

The requested URL /möja.html was not found on this server.
区域设置采用utf-8格式。Console正在正确键入德语特殊字符

LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
通过浏览器访问页面,并在开发系统上使用wkhtmltopdf(与debian Wheeezy发行版相同)可以正常工作。如果url中没有德语特殊字符,pdf将可以很好地创建。我找不到任何区别

谢谢你的每一个提示

显然,服务器不希望看到UTF-8编码字符,它可能希望看到拉丁语-1。URL不能包含以非ASCII字符开头的字符。根据预期的字符编码,以百分比编码方式对URL中的umlaut进行编码。拉丁语-1(ISO-8859-1)百分比编码版本为:

http://localhost/k%F6nig.html

谢谢你的重播。在我的开发系统上,我不必对uri进行编码。在这里,下面的bash命令起作用:lynx。在我的生产系统上,甚至lynx界面也没有显示umlauts。web服务器收到这个URL,并且必须在其磁盘上查找与文件名匹配的文件。文件系统如何处理非ASCII字符在很大程度上取决于文件系统。在某些系统上,文件名可能是UTF-8编码的,在其他系统上,文件名可能是UTF-16编码的,在其他系统上,文件名可能有一些复杂的代码页。URL的编码需要与磁盘上文件的编码相匹配(除非服务器上的某个中间层对此进行了不同的处理)。这完美地解释了为什么它在一个系统上工作,而不是在另一个系统上工作。它还解释了为什么在URL中应该避免使用非ASCII字符。谢谢,但是在类似Unix的系统上,文件名的编码不是在文件系统级别设置的,而是在用户环境中设置的。我认为我的配置一定有问题,因为如果我将localt更改为“de”,即使lynx系统界面也无法显示正确的拉丁字符URL将作为百分比编码字符串发送,即使您在命令行中键入“ö”。它的编码方式取决于您的区域设置和控制台设置。您在控制台中键入“ö”,它将根据控制台设置以特定字节表示,并由设置的区域设置进行解释,然后由curl将其编码为
%xx%xx
。服务器接收到表示字节的
%xx%xx
,并尝试在其磁盘上的文件名中查找具有相同字节的文件名。但它失败了。区域设置对服务器并不重要。URL没有区域设置。
http://localhost/k%F6nig.html