Php Codeigniter:URL错误中的UTF-8
首先,很抱歉我的英语不好 我正在使用代码点火器。 当我在UTF8中创建一个动态地址时,会得到奇怪的字符 url如下所示:domian.com/article/שלום#.T9H1U9WRGSo 而不是:domain.com/article/שלום 链接看起来不错:Php Codeigniter:URL错误中的UTF-8,php,codeigniter,url,utf-8,Php,Codeigniter,Url,Utf 8,首先,很抱歉我的英语不好 我正在使用代码点火器。 当我在UTF8中创建一个动态地址时,会得到奇怪的字符 url如下所示:domian.com/article/שלום#.T9H1U9WRGSo 而不是:domain.com/article/שלום 链接看起来不错: <a href="http://www.domain.com/article/שלום">Text</a> 但是当我点击链接后,我会重定向到这里(在除IE以外的所有浏览器中): domain.com/a
<a href="http://www.domain.com/article/שלום">Text</a>
但是当我点击链接后,我会重定向到这里(在除IE以外的所有浏览器中):
domain.com/article/שלום#.T9H1U9WRGSo
谢谢大家:)好的,我们的交易是你的URL中不能有非ascii字符 必须对字符进行翻译或编码
$hebrew = 'ס֑ס֒ס֓ס֔ס֕ס֖ס֗ס֘ס֙ס֚ס֛ס֜ס֝ס֞ס֟ס֠ס֡ס֢ס֣ס֤ס֥ס֦ס֧ס֨ס֩ס֪ס֫ס֬ס֭ס֮ס֯סְסֱסֲסֳסִסֵסֶסַסָסֹוֺסֻסּסֽ־סֿ׀סׁסׂ׃סׄסׅ׆סׇאבגדהוזחטיךכלםמןנסעףפץצקרשתװױײ׳״';
$config['permitted_uri_chars'] = $hebrew . ' a-z 0-9~%.:_\-';
(老实说,如果字母表错了,请不要怪我:p)好的,所以问题是URL中不能有非ascii字符 必须对字符进行翻译或编码
$hebrew = 'ס֑ס֒ס֓ס֔ס֕ס֖ס֗ס֘ס֙ס֚ס֛ס֜ס֝ס֞ס֟ס֠ס֡ס֢ס֣ס֤ס֥ס֦ס֧ס֨ס֩ס֪ס֫ס֬ס֭ס֮ס֯סְסֱסֲסֳסִסֵסֶסַסָסֹוֺסֻסּסֽ־סֿ׀סׁסׂ׃סׄסׅ׆סׇאבגדהוזחטיךכלםמןנסעףפץצקרשתװױײ׳״';
$config['permitted_uri_chars'] = $hebrew . ' a-z 0-9~%.:_\-';
(老实说,如果字母表错了,不要怪我:p)我无法解释为什么Codeigniter可能会或可能不会将您重定向到
#
URL,但URL不能包含非ASCII字符。需要使用urlencode
对所有非ASCII字符进行百分比转义:
<a href="http://www.domain.com/article/<?php echo urlencode('שלום'); ?>">Text</a>
由于浏览器应该在最坏的情况下在后台执行此操作,我不能说这会解决问题,但至少它更正确。我无法解释为什么Codeigniter可能会或可能不会将您重定向到
URL,但URL不能包含非ASCII字符。需要使用urlencode
对所有非ASCII字符进行百分比转义:
<a href="http://www.domain.com/article/<?php echo urlencode('שלום'); ?>">Text</a>
由于浏览器应该在最坏的情况下在后台执行此操作,我不能说这会解决问题,但至少它更正确。它不是有效的ASCII字节(仅0-127)它不是有效的ASCII字节(仅0-127)