Javascript 谷歌浏览器中的西里尔字母URL?

Javascript 谷歌浏览器中的西里尔字母URL?,javascript,url,url-encoding,Javascript,Url,Url Encoding,我的站点中的西里尔文URL有问题。嗯,我用Javascript(jQuery)更改我的URL,西里尔字母在每个浏览器中都能很好地工作,而不是谷歌Chrome,在谷歌Chrome上显示了三个unicodes。我认为URL没有被解码,所以我尝试了一个Javascript函数将其解码为正常格式,但没有任何改变。那么有什么办法解决这个问题呢 我的URL是这样的: http://site.com/index.html#начало http://site.com/index.html#%D0%BD%D0%

我的站点中的西里尔文URL有问题。嗯,我用Javascript(jQuery)更改我的URL,西里尔字母在每个浏览器中都能很好地工作,而不是谷歌Chrome,在谷歌Chrome上显示了三个unicodes。我认为URL没有被解码,所以我尝试了一个Javascript函数将其解码为正常格式,但没有任何改变。那么有什么办法解决这个问题呢

我的URL是这样的:

http://site.com/index.html#начало http://site.com/index.html#%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE http://site.com/index.html#начало 但在GC中显示如下:

http://site.com/index.html#начало http://site.com/index.html#%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE http://site.com/index.html#%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE
有什么帮助吗?

这不仅仅是Chrome,如果您将URl直接(或作为书签)粘贴到IE8中,也可能会导致问题

URL(按规范)不能包含西里尔字母。我们曾经拥有它们,但摆脱了它们,太多的问题

另见:

尝试使用和之类的函数

示例:

   $url = "http://site.com/index.html";
   $url_suffix = "#начало";

   $url_enc = $url . rawurlencode($url_suffix);
   echo "$url_enc<br />";

   $url_dec = rawurldecode($url_enc);
   echo "$url_dec<br />";
如果您尝试使用GETs发送电子邮件地址之类的参数,则rawurlencode()和RAWURLEDECODE()是安全的(urlencode()和URLEDECODE()不是)

还可以这样设置页面

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

在Chrome中,对我有用的是在获取url时使用decodeURIComponent(本机函数)。大概是这样的:

解码组件(window.location.href)


转到一个编码的url就可以了。

谷歌浏览器总是对他的url进行编码,但不会让它溜走。
试试这个:

您可以打开源代码,看看它是如何工作的

它只是编码的。如果您将此url(从GC)复制到任何其他浏览器的地址栏,它仍然可以正常工作。举个例子,是的,我看到了,我读到了所有不可打印的字符,但是我看到了一些使用西里尔字母的网站。例如:GC下载正在进行中。。。在FF中,这是正常的(即使FF也会将url显示为“查看源代码”中的编码)。我认为这是GC显示非英语字符URL的一种方式,但我很快会在GC中尝试。是的,现在我在GC中看到这个保加利亚网站有非编码URL。您使用什么服务器端语言?PHP?顺便说一句,你能发布一小段文档的源代码(HTML)吗?其中有西里尔字母的链接(例如HTML标签)?我明白了。。。也许我不得不在我的URL中不使用西里尔字母,因为它周围有很多麻烦,即使我真的想使用它。在原始格式中它不能(按规范)。但如果正确编码(如阿拉伯语、汉语、希腊语、日语等),则每个字符都可能是url的一部分。一些浏览器会自动将url编码的查询重写为其原始形式(大多数新一代浏览器),即使您将其(在地址栏中)以“百分比编码字符串”的形式放置。有时,我们无法解决特定浏览器引起的一些问题。@Wh1T3h4Ck5:我知道。你试着给我链接的问题一个答案,我们将进一步讨论。根据经验,我知道这会带来很多问题。。