繁体   English   中英

PHP UTF-8字符集强调

[英]PHP UTF-8 charset accentuation

抱歉,这个问题已经存在,但是我需要一种更实用的方法:

页面设置如下:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

稍后在php中,我使用以下行

$v .= "<a href='" . $videoEntry->getVideoWatchPageUrl() . "' rel='vidbox' title='" . $videoEntry->getVideoTitle() . "'><img src='";

...

$v .= "<td width='52%' height='16'><strong>Visualizações:</strong> " . $videoEntry->getVideoViewCount() . "</td>" $v .= "<td width='52%' height='16'><strong>Visualizações:</strong> " . $videoEntry->getVideoViewCount() . "</td>"

好。 现在

当我做

echo $v;

Itajubáem Foco Canal20 Oficina de Cuidados Paliativos(正确)

可视化:204 //(不正确)

如果我尝试

echo utf8_encode($v);

Itajubáem Foco Canal20 Oficina de Cuidados Paliativos //(不正确)

可视化:204 //(正确)

我尝试使用

header('Content-type:text / html; charset = utf-8');

但没有成功。

确保您使用的编辑器将文件保存在UTF-8中! 其中一些东西似乎来自必须存储在UTF-8中的数据库(或者

mysql_query("SET NAMES utf8");

将连接切换到UTF-8。

如果您的编辑器未将文本(“Visualizaçes”)保存为UTF-8,则应使用编辑器或“ iconv”之类的其他工具来转换文件。

最好的祝愿,
法比安

如果来自数据库的数据以UTF-8格式输出正常,但是.php文件本身中的静态内容不是,则意味着您没有在文本编辑器中将PHP文件本身保存为UTF-8。 。 可能您已将其另存为Windows代码页1252(西欧); 确保在保存对话框上将其更改(更改为UTF-8;如果“没有BOM的UTF-8”有单独的选项,请选择该选项,因为带有BOM的UTF-8完全是虚假的)。

如果您的文本编辑器稍后在将文件重新加载时出现错误的符号,则您需要告诉它默认情况下以UTF-8模式加载文件。 如果没有该选项,则为垃圾,应将其替换。 如果您真的无法替换它,则必须放弃源文件中的Unicode字符并将其编码为HTML:

Visualiza&#xE7;&#xF5;es

或者,特别是在PHP字符串文字中:

"Visualiza\xE7\xF5es"

顺便说一句,当您将文本放入HTML时,您需要使用htmlspecialchars ,否则您将遇到XSS错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM