将 URL 编码的字符串转换为 UTF-8
昨天我遇到了从 URL 获取一些 Unicode 字符串的问题。实际上我使用 CodeIgniter 并且 URL 段将被传递到控制器/函数(参数)中。我不知道是 CI 改变了编码还是其他什么。我的 HTML 页面的内容和地址栏中都有正确的编码,直到获得这些 Unicode 段。
例如:
localhost/df-gamez/news/افتتاح-جدید-سایت-تیم-دریم-فکتوری
最后一段是UTF-8下的perisan字符。它在任何地方都正确存在,但是当我在代码中得到它时,它会变成这样:
%d8%a7%d9%81%d8%aa%d8%aa%d8%a7%d8%ad-%d8%b3%d8%a7%db%8c%d8%aa-%d8%ac%d8%af%db%8c%d8%af-
%d8%aa%db%8c%d9%85-%d8%af%d8%b1%db%8c%d9%85-%d9%81%da%a9%d8%aa%d9%88%d8%b1%db%8c
我尝试使用 mb_encode
将其更改为 UTF-8,但没有成功。我的 HTML 页面和控制器文件的格式均为 UTF-8 Without BOM。
和平出去!
Yesterday I faced problem about getting some Unicode strings from URL. Actually I use CodeIgniter and the URL segments will be passed into controller/function(parameters). I don't know is it the CI changes the encoding or it's something else. I have the right encoding in my HTML page in the content and in the address bar till I get those Unicode segments.
For example:
localhost/df-gamez/news/افتتاح-جدید-سایت-تیم-دریم-فکتوری
The last segment is perisan characters which is under UTF-8. It's present correctly in everywhere but when I get it in my code It will turn to something like this:
%d8%a7%d9%81%d8%aa%d8%aa%d8%a7%d8%ad-%d8%b3%d8%a7%db%8c%d8%aa-%d8%ac%d8%af%db%8c%d8%af-
%d8%aa%db%8c%d9%85-%d8%af%d8%b1%db%8c%d9%85-%d9%81%da%a9%d8%aa%d9%88%d8%b1%db%8c
I tried to change it to UTF-8 with mb_encode
but it didn't. Both my HTML page and Controller file are formatted as UTF-8 Without BOM.
Peace Out!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 urldecode 函数进行解码。
将为您提供
ׁтай-зани-задой-Гим-שש-فкатья
Use urldecode function to decode.
will give you
افتتاح-سایت-جدید-تیم-دریم-فکتوری