我正试图在Twitter上分享包含阿拉伯字符的URL:
http://example.com/قرعة-تصفيات-أفريقيا-مصر-تواجه-نيجيريا/
当我点击“分享”时,推文框中会显示相同的网址,但是当我实际发推文时,它只会链接到qazxsw poi,而其余的网址则会丢失。
我尝试使用http://example.com
,但生成的URL太长且不可能发送推文。我该怎么解决这个问题?
如果您是网站的所有者,可以编写htaccess urlencode()
以生成更短或英文网址或使用重定向文件。
RewriteRule
如果您是网站的用户,您可以使用网址较短的网站,如RewriteEngine on
RewriteRule ^redirect/(.*)/?$ ./redirector.php?key=$1 [QSA,L,NC]
或bit.ly
您可以在.htaccess文件上使用RewriteRule或使用URL更短的服务
这是双方的问题:网络和演示。
URL永远不会以ASCII字符以外的方式传递。例如,当您提出请求时
goo.gl
它会产生错误,或者取决于您的客户,例如Chrome,将转换为:
http://example.com/عربي
Internet浏览器尽最大努力以最易读的方式呈现它。例如,当您请求以下URL时:
http://example.com/%D8%B9%D8%B1%D8%A8%D9%8A
Chrome会将其呈现给用户:
http://example.com/%D8%B9%D8%B1%D8%A8%D9%8A
Chrome还可以做些什么来处理复制和粘贴。因此,当您在顶部栏中复制URL并且它具有Unicode字符时,它将复制http://example.com/عربي
而不是http://example.com/%D8%B9%D8%B1%D8%A8%D9%8A
。现在你需要做的是检查twitter如何处理这个问题。它可能已经做了一些演示以减轻用户体验。但是,在网络方面,你真的做不了多少。
我使用网址缩短网站,例如goo.gl;然而,发布一个普通的URL比较耗时。