【问题标题】:How to convert ASCII characters in a string in to normal characters?如何将字符串中的 ASCII 字符转换为普通字符?
【发布时间】:2018-05-03 14:49:21
【问题描述】:

如何使用单个函数将字符串中的所有 ASCII 字符集更改为正常形式? 例如: 对于字符串“Hello Günter”,当更改为 ASCII 字符集时为“text=Hello+G%C3%BCnter”。我想要反过来。我有像“text=Hello+G%C3%BEnter”这样的字符串需要获取“Hello Günter”。 PHP中有内置函数吗?

【问题讨论】:

  • 你的代码在哪里?
  • 在ASCII字符的防御中,都是正常的。您正在处理 URL 编码的字符串,并且可以使用 PHP 轻松解码。

标签: php encoding ascii


【解决方案1】:

这不是 ASCII,它是百分比编码的 Unicode。更具体地说,它是 URL 编码。

使用urldecode 对其进行解码,或者使用parse_str 进行完整的解码,这将采用数据格式并将其放入关联数组中。

<?php
    $foo = "text=Hello+G%C3%BCnter";
    echo $foo . "\n";
    $foo = urldecode($foo);
    echo $foo . "\n";

    $foo = "text=Hello+G%C3%BCnter";
    echo $foo . "\n";
    $foo = parse_str($foo, $bar);
    echo $bar['text'] . "\n";
?>

通常,您只能通过 HTTP 请求(例如,在查询字符串中)以这种形式获取数据,在这种情况下,从 $_GET['text'] 读取数据会在 PHP 自动为您解码后检索数据。

【讨论】:

  • thankyou parse_str 是我所需要的。因为数据在 xml 中并从另一台服务器发送。我如何分别获取每个属性的值?
【解决方案2】:

检查 sprintf() 和 chr() 函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2016-06-18
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多