友好 URL 中的 UTF-8 字符

发布于 2024-10-25 01:18:07 字数 369 浏览 2 评论 0原文

我在 modx Revolution php 框架中制作了一个网站,最近我在 apache 中添加了Friendly Url 功能。

由于该网站是希腊语的,我想在 url 中包含希腊字符,这对于友好的 url 来说是一种有效的方法还是可能会在将来引起问题?

编辑:来自日语维基百科的示例链接 ディートロヒ・ブクステデデ

I have made a website in modx revolution php framework and recently I have added Friendly Url functionality in apache.

As the site is in Greek I would like to have greek characters in the url, is it a valid approach for friendly urls or it can cause a problem in the future?

edit: Example Links from the japanese wikipedia
ディートリヒ・ブクステフーデ

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黑色毁心梦 2024-11-01 01:18:07

RFC 1738 文档第 2.2 节指出:

因此,只有字母数字,特殊的
字符“$-_.+!*'(),”和
用于它们的保留字符
可以使用保留的目的
URL 中未编码。

您可以对 URL 中的其他字符进行编码,某些浏览器(例如 Chrome)通常会在地址栏中对它们进行解码。

但是,为了确保 URL 在所有浏览器上都可读,您应该避免在 URL 中完全使用希腊字符 - 如果可能,请使用 US-ASCII 等效字符。

Section 2.2 of the the RFC 1738 document states that:

Thus, only alphanumerics, the special
characters "$-_.+!*'(),", and
reserved characters used for their
reserved purposes may be used
unencoded within a URL.

You can encode other characters in your URL, and some browsers (e.g. Chrome) will often decode them in the address bar.

However, to ensure the URL is readable on all browsers you should avoid using the greek characters altogether in your URL - use a US-ASCII equivalent if possible.

街角卖回忆 2024-11-01 01:18:07

这不是一个好主意。要么 urlencode 非 ASCII 字符(但这不会是非常 url-友好)或将它们转换为 ASCII 对应项。

$url = $server . $path . '/' . urlencode($greektext);

-

$arr1 = array('Α', 'α', 'Β', 'β', ...);
$arr2 = array('A', 'a', 'B', 'b', ...);
$url = $server . $path . '/' . str_replace($arr1, $arr2, $subject);

It's not a very good idea. Either urlencode the non-ASCII charaters (but that won't be very url-friendly) or convert them to their ASCII counterparts.

$url = $server . $path . '/' . urlencode($greektext);

-

$arr1 = array('Α', 'α', 'Β', 'β', ...);
$arr2 = array('A', 'a', 'B', 'b', ...);
$url = $server . $path . '/' . str_replace($arr1, $arr2, $subject);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文