gpt4 book ai didi

php - 字符编码失败,为什么\xBD在PHP+HTML中显示不正常

转载 作者:行者123 更新时间:2023-12-05 01:48:28 25 4
gpt4 key购买 nike

我只是想更好地理解字符编码,所以我正在做一些测试。

我有一个保存为 UTF-8 的 PHP 文件,如下所示:

<?php
declare(encoding='UTF-8');

header( 'Content-type: text/html; charset=utf-8' );
?><!DOCTYPE html>

<html>

<head>
<meta charset="UTF-8" />
<title>Test</title>
</head>

<body>
<?php echo "\xBD"; # Does not work ?>
<?php echo htmlentities( "\xBD" ) ; # Works ?>
</body>

</html>

页面本身显示:

enter image description here

问题的要点是我的 web 应用程序有一堆字符编码问题,人们从 Outlook 或 Word 中复制和粘贴这些字符,字符被转换成菱形问号(那些有真名吗?)

我正在尝试学习如何确保在页面加载时将我的所有输入都转换为 UTF-8(基本上是 $_GET$_POST$_REQUEST),所有输出都使用适当的 UTF-8 处理方法完成。


我的问题是:为什么我的页面显示第一个回显的问号,还有人有关于用 PHP 制作 UTF-8 安全网络应用程序的任何其他信息吗?

最佳答案

0xBD 不是有效的 UTF-8。如果您想在 UTF-8 中编码“½”,则需要改用 0xC2 0xBD。

>>> print '\xc2\xbd'.decode('utf-8')
½

如果您想使用来自另一个字符集(在本例中为 Latin-1)的文本,那么您需要先使用各种 iconv 或 mb 函数将其转码为 UTF-8。

还有:

$ charinfo �
U+FFFD REPLACEMENT CHARACTER

关于php - 字符编码失败,为什么\xBD在PHP+HTML中显示不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11553124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com