我正在使用Kohana 3,它完全支持Unicode。
我将此作为<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
我插入的Unicode字符是é,就像在Café中一样。
但是,我得到了三角形? (因为无法解码字符)。
据我所知,在我自己的代码中,我没有对文本进行任何字符串操作。
事实上,我已将重音直接放入视图的PHP文件中,但它仍无效。
我从此页面复制了该字符:http://www.fileformat.info/info/unicode/char/00e9/index.htm
我刚开始研究PHP的Unicode限制,所以我可能会做一些可怕的错误。
那么,我该如何显示这个角色?我是否需要求助于HTML实体?
所以这是有效的
Caf<?php echo html_entity_decode('é', ENT_NOQUOTES, 'UTF-8'); ?>
为什么这样做?如果我从该脚本复制输出重音e并将其插入到我的文档中,则它不起作用。
答案 0 :(得分:1)
查看http标头。你应该看到像
这样的东西Content-Type: text/html; charset=UTF-8
如果有一个真正的http标题声明了不同的编码,浏览器就不会太关注元标记。
从中得到什么?
echo bin2hex('é');
echo chr(0xc3) . chr(0xa9);
你应该得到c3a9é,否则我会说文件编码问题。
答案 1 :(得分:0)
我想,你看 ,无效UTF-8字节序列的替换字符。您的文本不是UTF-8编码的。检查编辑器的设置以控制PHP文件的编码。
如果您不确定源代码的编码,可以执行此处所述的UTF-8兼容性(德语文本):Force UTF-8。
您永远不需要除basic ones以外的实体。