douhe1002 2016-07-28 20:32
浏览 73

将UTF-8转换为ASCII [关闭]

When I convert a sample string like this:

$str = "اوقات-شرعی-جمعه-8-مرداد-ماه-به-اÙÙ‚-اردبیل"
    echo mb_convert_encoding($str, "ASCII");

from UTF-8 to ASCII the result should be this:

%D8%A8%D8%B2%D8%B1%DA%AF-%D8%AA%D8%B1%DB%8C%D9%86-%D9%88%D8%B1%D8%B2%D8%B4%DA%A9%D8%A7%D8%B1%D8%A7%D9%86-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%A7%D9%84%D9%85%D9%BE%DB%8C%DA%A9%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1

But it's this :

?????????????????????-????????????????-??????????????????-8-?????????????????????-??????????????-?????????-?????????????-?????????????????????????

I'm really get confused Anyone knows the problem?

UPDATE : I also tryed iconv:

echo iconv("UTF-8", "ASCII", $str), PHP_EOL;

But it says :

Notice: iconv(): Detected an illegal character in input string

  • 写回答

2条回答 默认 最新

  • dpjj4763 2016-07-28 21:17
    关注

    %D8 is not ascii encoding. Ascii has 127 (or 255 if you're using extended) characters (see http://www.asciitable.com/)

    As such, special characters like Ø have no equivalent. mb_convert_encoding handles this by replacing them with a ?, whereas iconv throws an error.

    The output you're after looks more like url encoding. Try this:

    echo urlencode("اوقات-شرعی-جمعه-8-مرداد-ماه-به-اÙÙ‚-اردبیل");

    评论

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择