字符编码html - utf-8而不是latin1(character encoding html - utf-8 instead of latin1)
我有一个基本上只是的网页模板:
但是我的浏览器(正确地)将正文中的文本解释为latin1。 所以我改成了:
这解决了问题,并且在我的特定浏览器(Linux 3.x上的Chrome 17.x)中将文本正确解释为UTF-8,但是......
什么是指定html页面中的文本以UTF-8编码的最佳方式(最新的浏览器兼容和向前兼容)?
I had a web page template that was basically just:
But text in the body was (incorrectly) being interpreted as latin1 by my browser. So I changed it to:
This fixed the problem and the text was interpreted correctly as UTF-8 in my paticular browser (Chrome 17.x on Linux 3.x), however...
What is the best way (most current browser-compatible and forward-compatible) to specify that the text in a html page is encoded in UTF-8?
原文:https://stackoverflow.com/questions/9593151
更新时间:2019-09-13 19:01
最满意答案
...
...
相关问答
我会检查编码php认为它是 echo mb_detect_encoding($str);
然后呢 iconv("detectedEncoding", "UTF-8", $str);
或者,如果未安装iconv,请检查解决方案中的编码是否正确。 ;) I would check for the encoding php thinks it is echo mb_detect_encoding($str);
And then do iconv("detectedEncoding", "UTF-8
...
我不明白你的意思是“恢复,如果在shell中完成”,但是:你似乎有一个应用程序,其中一些部分(至少数据库)使用编码LATIN1,一部分(你的Rails应用程序)正在使用UTF-8。 IMO,最好是你拥有Unicode中的每一个,但是转换有意义的范围,一般不能说。 例如,如果您的数据库也正在由其他工具处理,而那些期望Latin1,则转换是不明智的。 在任何情况下,您都需要在使用哪种编码和在此边框处理转换之间定义清晰的边界线。 这不仅适用于数据库,还适用于 - 例如 - 生成的HTML页面(希望是UT
...
...
...
我想说如果你想转换所有非ASCII字符,你就不需要做任何latin1到UTF-8转换了。 假设您在数据上运行htmlspecialchars或htmlentities等函数,则所有非ASCII字符将替换为其对应的实体代码。 基本上,在此步骤之后,不应该有任何需要转换为UTF-8字符。 此外,如果你想将你的latin1编码字符串转换为UTF-8我强烈怀疑utf8_encode会很好。 PS。 在将bbCode转换为HTML我建议使用正则表达式。 例如,您可以在这样的行中完成所有操作: $html_d
...
主要(也是最常见的)陷阱是希望ALTER DATABASE … DEFAULT CHARACTER SET或ALTER TABLE … DEFAULT CHARACTER SET将改变现有列的编码。 这些语句仅影响发布这些语句后创建的表和列。 你应该分别改变每个表,使用 ALTER TABLE mytable CONVERT TO CHARACTER SET UTF8;
The major (and most common) pitfall would be hoping that ALTER
...
编码和fileencoding是vim中的两个选项。 有关详细信息,请阅读帮助文档。 如果您的文件编码为UTF-8,最简单的方法是设置encoding=utf-8和fileencoding=utf-8 。 您可以在vimrc中添加这些行,使其成为默认编码选项。 encoding, and fileencoding are two options in vim. please read the help doc for details. If your file was encoded as UTF
...
尝试 doc
Try doc
由于UTF-8的一些属性,使用iso-8859-1编码的文本不太可能是有效的UTF-8,除非它使用两种编码相同地解码[1] 。 因此,解决方案是尝试使用UTF-8对其进行解码。 如果失败,请使用iso-8859-1解码。 由于使用iso-8859-1进行解码是没有任何操作的,所以我会跳过这一步。 utf8 ::实现: my $decoded_text = $utf8_or_latin1;
utf8::decode($decoded_text);
编码::实现: use Encode qw( de
...
如果您在声明了VARCHAR(255)列上有任何索引,则在转换为utf8mb4时,您可能会收到有关“索引大于767字节”的错误。 有5个解决方法 。 如果您没有191到255个被索引的字符之间的变化,那么 ALTER TABLE tbl CONVERT TO utf8mb4;
会将表tbl中的所有列转换为utf8mb4。 如果您碰巧在“double encoding”中错误地将utf8字节存储到latin1中,则需要另外修复。 审查各种案件的修复 。 “默认”字符集或排序规则就是 - 默认值。
...
您的HTTP标头: Content-Type text / html; 字符集= ISO-8859-1 ...声称文档编码为拉丁文1.真正的HTTP标头优先于HTML 数据。 $webapp->header_add(-type => 'text/html; charset=UTF-8');
...如果我正确阅读文档,应该做的工作。 Your HTTP headers: Content-Type text/html; charset=ISO-8859-1 … claim the doc
...