4

Я строю реализацию Google Maps для шведской компании, поэтому язык имеет множество применений ä, å и ö. У меня нет проблем с отображением специальных символов (кодировка сайта - UTF-8), за исключением атрибутов «title» для каждого маркера карты. Мой код для маркеров (вы можете игнорировать все, что в квадратных скобках):Google Maps v3 - использование символов с акцентом в названиях маркеров

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 
}); 

Когда я парить над маркером на карте, подсказка появляется как «Ls Мер ом ...». Если я изменил «ä» на ä в Javascript, всплывающая подсказка отобразит «Läs mer om...».

Кикер состоит в том, что использование специальных символов в любом месте на сайте, либо непосредственно в необработанном HTML, либо сгенерированном тексте, размещенном CMS, или что-то-вы-работаете отлично. Это только в реализации Google Maps, что он взламывает.

Опять же, учитывая, что сайт полностью на шведском языке, это может быть довольно значительной проблемой. Любые яркие идеи от резидентских гениев?

+1

Я построил приложение для карт Google с арабским языком, и все это довольно хорошо с 100% -ным арабским, но я могу предложить вам преобразовать кодировку файла в UTF-8, http://manual.macromates.com/en /saving_files.html – tawfekov 2010-11-30 11:04:25

+0

Все кодировки файлов уже установлены в UTF-8, как и кодировка страницы. Как я уже сказал, все акцентированные персонажи прекрасно работают везде, кроме реализации Google Maps. – Scottie 2010-11-30 11:09:11

ответ

3

я был дать ему попробовать, и она работала здесь,

, если вам нужно проверить его так быстро попробовать console.log("L\u00e4s mer om") или alert("L\u00e4s mer om") он будет выводить «Läs Мер ом»

Источник: 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". 

объяснение:

с маркером является объектом JS, поэтому он должен следовать правилам верхней перечисленных

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

тогда ладно, что делать ??? используйте <?php echo json_encode("Läs mer om "); ?> или что-нибудь из ваших серверов-серверов

и добавьте значение к вашему объекту JSON или напишите его вручную и идите дальше!

Смежные вопросы