相关疑难解决方法(0)

EM Dash#151之间的区别是什么?和#8212;?

我有一个包含EM Dash(或—HTML)的ASCII文件.十六进制值为0x97.当我们通过一个应用程序传递此文件时,它以UTF-8的形式到达,并将字符转换为0xC297,它是—HTML格式的.但是,当我们通过另一个应用程序传递此文件时,它将字符转换为0xE28094或—.

什么会导致这些应用程序以不同方式转换这些字符 它可能是代码页设置吗?

unicode ascii utf-8

29
推荐指数
4
解决办法
4万
查看次数

str_replace()对多字节字符串有危险吗?

鉴于某些多字节字符集,我是否正确假设以下内容不符合预期目的?

$string = str_replace('"', '\\"', $string);
Run Code Online (Sandbox Code Playgroud)

特别是,如果输入的字符集可能具有像0xbf5c这样的有效字符,那么攻击者可以注入0xbf22来获取0xbf5c22,留下一个有效字符后跟一个不带引号的双引号(").

有没有一种简单的方法来缓解这个问题,或者我是否首先误解了这个问题?

(在我的例子中,字符串进入HTML输入标签的value属性:echo'input type ="text"value ="'.$ string.'">';)

编辑:就此而言,像preg_quote()这样的函数呢?它没有charset论据,因此在这种情况下似乎完全没用.如果你没有选择将字符集限制为UTF-8(是的,这很好),你好像很残疾.在这种情况下可以使用哪些替换和引用功能?

php multibyte

23
推荐指数
2
解决办法
3万
查看次数

如何将HTML字符引用(ף)转换为常规UTF-8?

我有一些希伯来网站,其中包含如下字符引用: נוף

如果我将文件保存为.html并以UTF-8编码查看,我只能查看这些字母.

如果我尝试将其作为常规文本文件打开,则UTF-8编码不会显示正确的输出.

我注意到如果我打开文本编辑器并以UTF-8编写希伯来语,在这个例子中每个字符占用两个字节而不是4个字节行(ו)

如果这是UTF-16或任何其他类型的UTF字母表示的任何想法?

如果可能,如何将其转换为普通字母?

使用最新的PHP版本.

html php utf-8 character-reference

4
推荐指数
2
解决办法
4178
查看次数

标签 统计

php ×2

utf-8 ×2

ascii ×1

character-reference ×1

html ×1

multibyte ×1

unicode ×1