Php Filter_var()正在将“of”符号添加到“)”符号中

Php Filter_var()正在将“of”符号添加到“)”符号中,php,Php,所以我有这个代码: var_dump(trim(filter_var("\nLook ma, there are special characters:\n<>\"'&©", FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW | FILTER_FLAG_ENCODE_HIGH))); 问题是编码字符&194;是字符,它不在原始文本中 我的问题:为什么会发生这种情况,我如何删除多余的字符?它不是多余的字符;它是多字节Unicode字

所以我有这个代码:

var_dump(trim(filter_var("\nLook ma, there are special characters:\n<>\"'&©", FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW | FILTER_FLAG_ENCODE_HIGH)));
问题是编码字符&194;是字符,它不在原始文本中


我的问题:为什么会发生这种情况,我如何删除多余的字符?

它不是多余的字符;它是多字节Unicode字符的第一个字节

实际上,您要求函数执行此操作,方法是给它一个FILTER_FLAG_ENCODE_LOW | FILTER_FLAG_ENCODE_HIGH FLAG表达式

如果不对高值进行编码,结果会发生变化,但仍然不是很有用:

var_dump(trim(filter_var("\nLook ma, there are special characters:\n<>\"'&©", FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW)));
//  string(61) "&#10;Look ma, there are special characters:&#10;&#34;&#39;&┬®"
但这是一种限制

请通读以下手册页面以了解更多信息:


这就解释了为什么+1,我仍然需要知道如何删除这个角色。我想用mb_convert_编码可以解决这个问题,但是我对字符编码知之甚少,不知道该把它转换成什么。我在UTF-8模式下编辑文件,如果这有助于我们明确了解您的目标和需求。你想对哪些角色做什么?还有什么原因呢?ascii范围对我来说已经足够了,我不需要支持用户输入超出该范围的字符。但是,我确实需要在源代码中支持UTF-8,好吧,但是你仍然没有告诉我们你想要实现什么。所以剥离高值可能对你有用,我不确定。FWIW,©实际上不是ASCII。您试图解决的实际问题是什么?你的目标是什么?不确定是否值得,但这是高度相关的
var_dump(trim(filter_var("\nLook ma, there are special characters:\n<>\"'&©", FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW)));
//  string(61) "&#10;Look ma, there are special characters:&#10;&#34;&#39;&┬®"
// string(65) "&#10;Look ma, there are special characters:&#10;&#34;&#39;&&#169;"