我需要对HTML做些什么才能让重音字符正确显示?

时间:2015-06-09 01:13:33

标签: html browser html-escape-characters

我有这样的HTML(英语和西班牙语的组合):

<p><em><span class="consolas">In </span><span class="english">English</span><span class="consolas"> and </span><span><strong>Spanish</strong></span></em><em><span class="consolas"> / En </span><span class="english">Inglés</span><span class="consolas"> y </span><span><strong>Español</strong></span></em></p>

<p class="smallfont">Translated by/Traducida por Manuel Caballero (1886)</p>

<hr/>
<section>

    <h2 class="smallcaps">PART ONE--The Old Buccaneer / PARTE I--EL VIEJO FILIBUSTERO</h2>

<p class="chapter">CHAPTER/CAPÍTULO 1</p>
<h3>The Old Sea-dog at the Admiral Benbow / EL VIEJO LOBO MARIN EN LA POSADA DEL 'ALMIRANTE BENBOW'</h3>

<p>SQUIRE TRELAWNEY, Dr. Livesey, and the rest of these gentlemen having
asked me to write down the whole particulars about Treasure Island, from
the beginning to the end, keeping nothing back but the bearings of the
island, and that only because there is still treasure not yet lifted, I
take up my pen in the year of grace 17__ and go back to the time when
my father kept the Admiral Benbow inn and the brown old seaman with the
sabre cut first took up his lodging under our roof.</p>
<p class="spanish"><strong>Imposible me ha sido rehusarme á las repetidas instancias que el Caballero Trelawney, el Doctor Livesey y otros muchos señores me han
hecho para que escribiese la historia circunstanciada y completa de la
Isla del Tesoro. Voy, pues, á poner manos á la obra contándolo todo,
    desde el <em>alfa</em> hasta el <em>omega</em>, sin dejarme cosa alguna en el tintero, exceptuando la determinación geográfica de la isla, y esto tan solamente
porque tengo por seguro que en ella existe todavía un tesoro no
descubierto. Tomo la pluma en el año de gracia de 17-- y retrocedo hasta
la época en que mi padre tenía aún la posada del "<em>Almirante Benbow</em>," y
hasta el día en que por primera vez llegó á alojarse en ella aquel viejo
marino de tez bronceada y curtida por los elementos, con su grande y
visible cicatriz.</strong></p>

正如你在screamshot中看到的那样:

enter image description here

...西班牙语重音字符被替换为默认/“我不知道那是什么”字符。它看起来有不同的替换字符,但在IE中仍然“破碎”(screamshot来自Chrome)。

我该怎样做才能让这些重音字符显示为应该/自然?

更新

我尝试了看似简单的修复,在“head”部分添加了“<meta http-equiv="content-type" content="text/html;charset=utf-8" />”行:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Treasure Island / La Isla del Tesoro</title>
    <!--[if IE]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<style>
body {
    font-family:"Segoe UI", "Palatino Linotype", "Bookman Old Style", "Candara", "Calibri", "Consolas", serif;
    font-size: 1.2em;
}
. . .
}</style>
</head>

......但没有区别。

更新2

即使使用Ctrl + F5,我仍然无法获得快速提示,但是执行全局搜索和替换以下内容(用第二个替换第一个中的第一个)工作得很好:

á
&aacute;

Á
&Aacute;

é
&eacute;

É
&Eacute;

í
&iacute;

Í
&Iacute;

ñ
&ntilde;

Ñ
&Ntilde;

ó
&oacute;

Ó
&Oacute;

ú
&uacute;

Ú
&Uacute;

ü
&uuml;

Ü
&Uuml;

¿
&iquest;

¡
&iexcl;

更新3

顺便说一句,可以看到这个jsfiddle版本(从未出现过重音字符的问题)here

1 个答案:

答案 0 :(得分:3)

指定用于页面的字符集很重要,因为某些浏览器可能会弄乱显示来自不同语言的特殊字符或字符。 在<head>....</head>

中添加以下行
<meta http-equiv="content-type" content="text/html;charset=utf-8" />

我在使用和不使用上述代码的情况下尝试了您的代码,并在包含上述代码后得到了正确的结果。

如果他们仍然是一些没有正确显示的字符,那么尝试用他们的字符代码替换这些字符。 Here is a complete list of character codes for Spanish characters

修改 我尝试了你的更新代码,它仍然适用于Mozilla,Chrome和IE,这是我的屏幕的screeshot, enter image description here

检查您是否正在写下您在问题中所写的内容

尝试重新打开浏览器并通过ctrl + F5刷新页面