我有以下html
<div class="ui-widget" style="margin-top: 1em; font-family: Arial">
Selected:
<div id="locationLog" style="height: 100px; width: 200px; overflow: auto;" class="ui-widget-content"></div>
</div>
<input type="hidden" name="HiddenLocations" id="HiddenLocation" />
然后我有一些代码在每次页面加载时运行,以便在locationLog
div中添加一些文本。
@if (Model.SearchCriteria != null && Model.SearchCriteria.Locations != null)
{
foreach (string t in @Model.SearchCriteria.Locations)
{
<script type="text/javascript">
$("<div/>").text('@t').appendTo("#locationLog");
$("<br/>").text("").appendTo("#locationLog");
$("#locationLog").scrollTop(0);
selectedLocations = $('#locationLog' + ' div').map(function () {
return $(this).text();
}).get();
$('input[name=HiddenLocations]').val(selectedLocations);
</script>
}
}
现在,当我有“伦敦”这样的文字时,这段代码效果很好,但是当我有“雷克雅未克”时,这段代码写成'Reykjavík
'。我怎样才能写出正确的文字?
答案 0 :(得分:1)
尝试在文档中声明utf-8字符集
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
修改强> 试试这个:
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}
并在此处使用:
selectedLocations = $('#locationLog' + ' div').map(function () {
return htmlDecode($(this).text());
}).get();