4

Ich baue eine Google Maps-Implementierung für eine schwedische Firma, sodass die Sprache viele Verwendungsmöglichkeiten von ä, å und ö hat. Ich habe keine Probleme, die Sonderzeichen korrekt anzuzeigen (der Site-Zeichensatz ist UTF-8), außer in den "Titel" -Attributen für jede Kartenmarkierung. Mein Code für die Marker ist (Sie alles, was in eckigen Klammern ignorieren):Google Maps v3 - Verwenden von Zeichen mit Akzenten in Marker-Titeln

var marker = new google.maps.Marker({ 
    position: [coordinates], 
    map: [map container div], 
    icon: [icon image], 
    title: "Läs mer om "+[text from JSON] //THIS IS WHERE THE PROBLEM IS 
}); 

Wenn ich über die Markierung auf der Karte bewegen, der Tooltip kommt als „Ls mer om ...“. Wenn ich das "ä" im Javascript auf ä ändere, zeigt der Tooltip stattdessen "Läs mer om..." an.

Der Kicker ist, dass die Verwendung von Sonderzeichen irgendwo anders in der Website, entweder direkt in Raw HTML oder generierten Text von CMS gestellt oder was auch immer-Sie gut funktionieren. Es ist nur in der Google Maps-Implementierung, die es knackt.

Da die Website komplett auf Schwedisch ist, könnte dies ein ziemlich bedeutendes Problem sein. Irgendwelche Ideen von SO-Genies?

+1

Ich hatte eine Google Map App mit arabischer Sprache gebaut, und es ist alles ziemlich schön mit 100% arabisch, aber ich kann Ihnen vorschlagen, die Dateicodierung in UTF-8 zu konvertieren, http://manual.macromates.com/de /saving_files.html – tawfekov

+0

Dateicodierungen sind alle bereits auf UTF-8 eingestellt, ebenso der Zeichensatz der Seite. Wie gesagt, alle akzentuierten Zeichen funktionieren mit Ausnahme der Google Maps-Implementierung überall gut. – Scottie

+1

versuchen, es mit diesem Titel zu ersetzen: "L \ u00e4s mer om" + [Text von JSON] 'Wenn ich arbeitete, werde ich es viel mehr erklären – tawfekov

Antwort

3

hatte ich es versuchen und es funktionierte hier,

wenn Sie es versuchen so schnell zu testen, müssen console.log("L\u00e4s mer om") oder alert("L\u00e4s mer om") es ausgeben würde "Läs mer om"

Quelle: http://www.ietf.org/rfc/rfc4627.txt

2.5. Strings 
    The representation of strings is similar to conventions used in the C 
    family of programming languages. A string begins and ends with 
    quotation marks. All Unicode characters may be placed within the 
    quotation marks except for the characters that must be escaped: 
    quotation mark, reverse solidus, and the control characters (U+0000 
    through U+001F). 

    Any character may be escaped. If the character is in the Basic 
    Multilingual Plane (U+0000 through U+FFFF), then it may be 
    represented as a six-character sequence: a reverse solidus, followed 
    by the lowercase letter u, followed by four hexadecimal digits that 
    encode the character's code point. The hexadecimal letters A though 
    F can be upper or lowercase. So, for example, a string containing 
    only a single reverse solidus character may be represented as 
    "\u005C". 

    Alternatively, there are two-character sequence escape 
    representations of some popular characters. So, for example, a 
    string containing only a single reverse solidus character may be 
    represented more compactly as "\\". 

    To escape an extended character that is not in the Basic Multilingual 
    Plane, the character is represented as a twelve-character sequence, 
    encoding the UTF-16 surrogate pair. So, for example, a string 
    containing only the G clef character (U+1D11E) may be represented as 
    "\uD834\uDD1E". 

Erklärung:

da der Marker ein JS-Objekt, so sollte es den oberen aufgeführten Regeln

{ 
    position: [coordinates], 
    map: [map container div], 
    icon: [icon image], 
    title: "Läs mer om "+[text from JSON] //THIS IS WHERE THE PROBLEM IS 
} 

in Ordnung dann, was zu tun folgen ??? Verwenden Sie <?php echo json_encode("Läs mer om "); ?> oder was auch immer Ihre serverseitige Sprache ist

und hängen Sie den Wert an Ihr JSON-Objekt oder schreiben Sie es manuell und Weiter !!

+0

Brilliant! Das hat es perfekt sortiert. Vielen Dank! – Scottie

+0

Sie begrüßen Scottie! :) – tawfekov

+0

Sorry, ich verstehe es immer noch nicht. Ich benutze ASP.NET MVC 4, serverseitige Sprache ist C#, was soll ich tun? – AnhTriet