首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中用HTML将"UCS-2“转换成"UTF-8”?

如何在PHP中用HTML将"UCS-2“转换成"UTF-8”?
EN

Stack Overflow用户
提问于 2015-07-30 05:11:00
回答 1查看 2.8K关注 0票数 0

我有一个HTML,它是在ISO8859-1中设置的.现在,我想将UCS-2字符串转换为UTF-8字符串;这个输出UTF-8将打印到<input type="text" name="out" />中。而且,我的HTML 绝不能更改字符集。

我读过以下问题:

我试图通过以下代码来解决我的问题:

代码语言:javascript
复制
<?php $str = $_POST['str']; ?>
<form method="post">
<input type="text" name="str" value="<?php echo $str; ?>" />
&nbsp;&nbsp;<input type="submit" />
</form>
<hr /><input type="text" name="out" value="<?php echo mb_convert_encoding($str, 'UCS-2', 'UTF-8'); ?>" />

当我在UCS-2中输入一个单词时,比如:Việt Nam,它将返回:�V�i�&�#�7�8�7�9�;�t� �N�a�m。为什么?

有没有办法将UCS-2转换成UTF-8,然后输出到<input type="text" name="out" />

EN

回答 1

Stack Overflow用户

发布于 2015-08-04 12:58:57

UCS-2似乎与你的问题完全无关。在任何步骤都不涉及UCS-2。

当您有一个使用ISO-8859-1字符集(或Unicode的任何其他子集)的网站或表单,并且输入一个不能在此字符集中编码的字符时,浏览器将将该字符编码为HTML实体,并将包含HTML实体的ISO-8859-1编码数据发送到您的服务器。如果您稍微斜视一下:&#7879;,您可以在输出中看到这一点。

您可以直接将该实体输出回浏览器以获得所需的字符。如果要将此HTML实体转换为实际字符(例如,UTF-8 ),则需要对其进行HTML解码:

代码语言:javascript
复制
echo html_entity_decode($str, ENT_COMPAT | ENT_HTML401, 'UTF-8');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31715579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档