在WP7浏览器中加载的法语/西班牙语HTML中的匹配字符重音符号

时间:2012-03-04 15:26:43

标签: html windows-phone-7 encoding

我在Windows Phone 7中加载本地法语/西班牙语HTML时遇到问题。重音é在手机内的BrowserControl中变成了ýý。在我删除html文件中的格式之前,它们曾经是一个无法识别的符号。我希望图像有助于理解问题,我似乎无法找到它正在发生变化的原因。

Accent Character Mismatch

这是令人讨厌的样本html repro

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta name="viewport" content="width=320" />
<meta name="viewport" content="user-scalable=no" />
<title>Acteur majeur du commerce en lig</title>
<style type="text/css">
.auto-style1 {
    font-family: Arial, Helvetica, sans-serif;
}
.auto-style3 {
    font-size: small;
}
.auto-style4 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: medium;
}
</style>
</head>

<body style="background-color: #DDDDDD">

<p class="auto-style4"><strong>Charte de sécurité </strong></p>
<p><span><span class="auto-style1"><span class="auto-style3">Acteur majeur du 
commerce en ligne, leader des voyages et loisirs en France et en Europe, 
lastminute.com oeuvre au quotidien pour garantir une sécurité maximale de ses 
transactions ainsi que l'intégrité et la confidentialité des données de ses 
visiteurs et abonnés. lastminute.com s'associe donc tout naturellement, depuis 
le vendredi 3 juin 2005,&nbsp;à la Délégation aux usages de l'internet du Ministère 
de l'Éducation nationale, de l'Enseignement supérieur et de la Recherche et au 
Sénat pour lancer la première semaine pour la sécurité sur Internet. Pour que le 
web reste un formidable lieu d'échange, de convivialité et d'interactivité, et 
parce que &quot;l'internet + sûr, ça s'apprend&quot;, découvrez vite tous les bons 
réflexes sur&nbsp;</span><a href="http://protegetonordi.com/"><span class="auto-style3">protegetonordi.com</span></a><span class="auto-style3">&nbsp;</span></span></span></p>

</body>

</html>

我把它带到Expression Web,并将其保存为HTML文件,以便在WP7应用程序中本地使用。我将HTML标记为内容,并使用下面的代码加载

        StreamReader terms = new StreamReader(TitleContainer.
           OpenStream("html/terms.html"));  
        browserControl.NavigateToString(terms.ReadToEnd());           

2 个答案:

答案 0 :(得分:0)

似乎所有非Ascii角色都变成了“ÿÿ”,所以显然有几个问题。这两个字符的ISO-8859-1代码为0xFD 0xFF,这两个字节是U + FFFD REPLACEMENT CHARACTER的UTF-16LE(“字节交换”或Little-Endian,16位Unicode转换格式)编码,通常用于表示字符级别的数据错误。

因此,某些软件无法正确解释文本数据并用U + FFFD替换有问题的字符,然后获得UTF-16LE编码,后来被误解为ISO-8859-1。应首先识别数据的原始编码,并且可能需要将数据转换为ISO-8859-1 一致地视为UTF-8。

答案 1 :(得分:0)

我“猜测”您的原始文件是以ASCII格式保存的,但未显示的字符是非ASCII格式,并且HTML标题中没有任何编码信息。

尝试将文件重新保存为UTF-8。