显示德语特殊字符

时间:2013-09-24 09:30:08

标签: javascript

function($) {
$.fn.listnav = function(options) {
    var opts = $.extend({}, $.fn.listnav.defaults, options);
var letters = ['_', 'a', 'ä', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l','m'
, 'n', 'o', 'ö', 'p', 'q', 'r', 's', 't', 'u', 'ü', 'v', 'w', 'x', 'y', 'z', '-'];

function createLettersHtml() {
var html = [];
 for (var i = 1; i < letters.length; i++) {
   if (html.length == 0) html.push('<a class="all" href="#">ALL</a><a class="_" 
       href="#">0-9</a>');
       html.push('<a class="' + letters[i] + '" href="#">' + ((letters[i] == '-') ?
       '...' : letters[i].toUpperCase()) + '</a>');
            }

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" session="false"%>

德国人物(ä,ö,ü)显示为Ã,¶,ÃƑ¼

你知道我该如何解决这个问题吗?

谢谢!


FIXED:

if(letters[i] == 'ä') {
                    html.push('<a class="' + letters[i] + '" href="#">&Auml;</a>');
                }
                else if(letters[i] == 'ö') {
                    html.push('<a class="' + letters[i] + '" href="#">&Ouml;</a>');
                }
                else if(letters[i] == 'ü') {
                    html.push('<a class="' + letters[i] + '" href="#">&Uuml;</a>');
                }
                else {
                    html.push('<a class="' + letters[i] + '" href="#">' +  
     (letters[i].toUpperCase()) + '</a>');
                }
            }

2 个答案:

答案 0 :(得分:0)

这是PHP还是ASP.NET?

存储üäö等的文件是否真的是UTF-8编码并以这种方式传送到浏览器?或者是UTF-16还是其他编码?我认为您的服务器以其他编码方式为它们提供服务,并且根据它是PHP还是ASP.NET,修复方法会有所不同。

德语字符ß怎么样?

答案 1 :(得分:0)

谢谢!

整件事与jQuery listnav有关:https://github.com/esteinborn/jquery-listnav

我只是解决了整个问题,您需要在a-z测试中添加一个查询:

function addLetterClass(firstChar, $el, isPrefix) {
            if ( /\W/.test(firstChar) ) {
                if (firstChar != "ä" && firstChar != "ö" && firstChar != "ü") {
                    firstChar = '-'; // not A-Z, a-z or 0-9, so considered "other"
                }
            }

因此,现在“ä,ö,ü”不再理清。 :)