标签:php encoding special-characters
我们有这些字符:
“和”
(这不是常规的“,而是某种卷曲的.不知道它叫什么)
当我们使用htmlentities()时,这些字符不会被转换,这会导致以后出现问题.进一步的问题是我们用Latin-1编码我们的页面,我们无法保存这个特定的字符(因此我们不能进行替换和查找,因为我们实际上无法将其编程到任何页面中).
注意:我们设置ENT_QUOTES,但这对htmlentities()没有影响.
UPDATE
我现在知道他们被称为花哨的引用,其中,他们适当的html实体是“和”.现在,问题是,为什么PHP不能正确转换这些字符?请参阅示例代码:
<?php
var_dump(htmlentities($_POST['t'],ENT_QUOTES));
?>
<form action="" method="post">
<input type="t" name="t" />
<button class="button" type="submit">Send</button>
</form>
结果:
解决方法:
使用htmlentities()它涵盖了具有等效html实体的所有字符.
UPDATE
你需要改变charset.
echo htmlentities(“”jrod“”,ENT_QUOTES,“Windows-1252”);
更新2
<?php
var_dump(htmlentities($_POST['t'],ENT_QUOTES, "Windows-1252"));
?>
<form action="" method="post">
<input type="t" name="t" />
<button class="button" type="submit">Send</button>
</form>
使用的字符串:“测试”
Var转储输出:字符串(21)“& ldquo; testing& rdquo;”
请注意,要查看html等效项,您必须查看源代码,因为浏览器会相应地呈现它们.
标签:php,encoding,special-characters 来源: https://codeday.me/bug/20190610/1210110.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。