Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除字符,如“quot࿽&引用;从这个字符串使用php_Php_String - Fatal编程技术网

如何删除字符,如“quot࿽&引用;从这个字符串使用php

如何删除字符,如“quot࿽&引用;从这个字符串使用php,php,string,Php,String,当我执行以下代码时,它返回非标准字符,那么我们如何删除它或获取原始字符串 header('Content-type: text/html; charset=utf-8'); $String = "à¸?่อตั้งเมื่อ"; echo $String; 输出:�?่อตั้งเมื่อ 需要实际结果:ก่อตั้งเมื่อ您提到的字符编码为utf-8,其中as字符串未编码为utf-8。这就是为什么“?”标记出现在输出中而不是预期的输出中。首先,

当我执行以下代码时,它返回非标准字符,那么我们如何删除它或获取原始字符串

header('Content-type: text/html; charset=utf-8');
$String = "�่อตั้งเมื่อ";
echo $String;
输出:
�?่อตั้งเมื่อ


需要实际结果:
ก่อตั้งเมื่อ

您提到的字符编码为utf-8,其中as字符串未编码为utf-8。这就是为什么“?”标记出现在输出中而不是预期的输出中。

首先,为了不被编码问题所迷惑,您确实想阅读以下文章:

第二,我只是做了以下几点:

$ vim ~/sandbox/php/encoding.php
( inserted your code verbatim )
$ cd ~/sandbox/php/
$ php -S localhost:1200
在Firefox中打开页面后,我得到了
$String
的内容

我的意思是,我得到了以下几行字符:

�่อตั้งเมื่อ
这意味着您的浏览器(无论是哪种浏览器)不知道如何呈现您输入的字符。字符串本身正以UTF-8正确编码。您必须将浏览器设置为将文本显示为UTF-8,或者可能安装支持这些符号的字体

此外,如果您想要输出一些带有UTF-8 Devanagari符号的文本,您只需要在PHP中满足以下要求:

  • 您的源代码文件必须保存在UTF-8中
  • 您必须发送utf-8字符集副标题,您已经这样做了
  • 您必须将要输出到浏览器的字符串逐字输入到源代码中,不需要以任何方式对其进行编码,PHP不在乎

  • 您的字符串,
    是无效的utf-8。这就是为什么
    显示-浏览器不知道如何解释它

    正如其他人所指出的,第三个位置上的问号很可能就是问题所在


    错误字符串的前三个字节是
    e0 b8 3f
    3f
    是ascii码
    )。我不懂泰语,但是a的字节序列看起来非常相似,应该是
    e0 b8 81

    您是如何获得字符串
    的?提示:开头附近的问号是错误的,它破坏了UT编码。您能显示实际结果的图像吗?因为至少在我的系统中,没有支持这些字形的字体,因此你在“输出”中写的与在“需要实际结果”中写的没有什么不同,这两行中都有代码点的正方形。@hijarian在windows和android上为我工作。显然,他们是泰国人。这也解释了为什么它会以问号的形式出现。0x81在拉丁文1和windows-1252中未定义。也许OP试图复制并粘贴编码字符串。顺便说一句,在寻找角色上有很好的奉献精神。