[英]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ções
或者,特别是在PHP字符串文字中:
"Visualiza\xE7\xF5es"
顺便说一句,当您将文本放入HTML时,您需要使用htmlspecialchars
,否则您将遇到XSS错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.