我在html中有以下代码:
<head>
<meta content="text/html; charset=UTF-8">
<title> Flora – Create a Plate – Make Your Own Kid’s Plate</title>
<meta name="Description" content="Create your own unique personalised kid’s plate with backgrounds, stickers, stamps & your own drawings!" />
<meta property="og:title" content="Flora – Create a Plate – Make Your Own Kid’s Plate"/>
<meta property="og:url" content="https://somewebaddress"/>
<meta property="og:image" content="http://somewebaddresswithimage"/>
<meta property="og:site_name" content="Flora - Create a plate"/>
<meta property="og:type" content="website"/>
<meta property="og:description" content="Create your own unique personalised kid’s plate with backgrounds, stickers, stamps & your own drawings!"/>
<meta property="og:keywords" content="create a plate, custom kid’s plate, make your own plate, flora"/>
我面临的问题是,当查看标题时,它涉及一些特殊字符,如'(单引号), - (破折号)。
对于这些角色,它向我展示了菱形问号。
我在元标记中使用了UTF-8来避免这种情况。
<meta content="text/html; charset=UTF-8">
但它没有正确地看我。
可能是什么问题?
请帮帮我。
答案 0 :(得分:3)
“菱形问号”是“ ”U + FFFD REPLACEMENT CHARACTER,它表示字符级数据错误:浏览器在应用的字符编码中遇到了完全不代表字符的字节。它也可能是文档本身的实际U + FFFD字符,在这种情况下,它意味着用于生成文档的某些软件遇到了这些格式错误的字节,并用U + FFFD替换它们。
如果没有其他信息,例如涉及的原始字节数据,浏览器发送的HTTP标头,以及可能用于生成HTML文件的软件,则无法确定问题的最终原因。例如,HTML文件很可能实际上是windows-1252编码的;当解释为UTF-8时,windows-1252数据通常会导致这样的错误。如果服务器在HTTP标头中声明了window-1252(或iso-8859-1,实际上被视为windows-1252),那么只更改meta
标签就无济于事。
答案 1 :(得分:2)
你需要逃避印刷字符。而不是撇号使用此HTML实体’
。其他人可以在http://www.w3.org/wiki/Common_HTML_entities_used_for_typography找到。
<强>更新强>
对于本地文件:使用支持UTF8的编辑器保存它(最好使用BOM)。在Chrome中打开它并检查工具编码菜单。它告诉您浏览器使用的实际编码。
如果您正在使用某种服务器。在Chrome中按F12键显示开发人员工具,然后转到网络标签,重新加载页面。在面板的右侧查找Response header Content-Type。
答案 2 :(得分:1)
我正在提取一些旧的遗留内容以进行重新利用,因此我的案子没有那么关键,但是为了摆脱菱形问号,我最终要做的是对从数据库中提取的内容运行替换功能,正则表达式模式是从最初使用文本编辑器获得的源中复制而来的。我在源内容中找到一个菱形问号,方法是复制它前面的文本,然后使用该文本短语的搜索找到有问题的字符。在普通的文本编辑器中,此字符看起来像一个空格,但是我能够确定它不是空格,因为我的文本编辑器是高级的,并且具有“查看非打印文本功能”,其中空格显示为中心点,但这个特殊字符没有点,表明它肯定不是空格。因此,我从源代码中复制了该字符,并将其置于正则表达式模式中,然后继续将其替换为空格字符。这对我有用。
$ patterns = array(“ /。img /”,“ / /”); //通过来源的剪切粘贴复制第二个图案
$ replacements = array(“。jpg”,“”); //第二次替换是一个空格
echo preg_replace($ patterns,$ replacements,$ content);
答案 3 :(得分:0)
通过以下写作:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title> Flora – Create a Plate – Make Your Own Kid‘s Plate</title>
–
for -
‘
代表'
解决了我的问题。
我从Jan Pfeifer给出的链接中获取这些内容
http://www.w3.org/wiki/Common_HTML_entities_used_for_typography