2014-08-10 4 views
1

Я использую API Карт Google v3 и обратный геокод, чтобы получить название города, окрестности, местность и страну, используя Локатор и долготу.Удалить странные японские персонажи из результатов Google Geocode

Все работает нормально, но некоторые результаты появляются со странными персонажами, например:

 { 
      "long_name" : "ポンペーイア", 
      "short_name" : "ポンペーイア", 
      "types" : [ "neighborhood", "political" ] 
     }, 

Правильная информация должна быть «Помпея», а не эти символы. Я знаю, что это какая-то ошибка Google, потому что одни и те же символы отображаются в Google Maps Url, но я хочу, по крайней мере, удалить эти символы, поэтому я попытался заменить эти символы с помощью JS и Regex, но без успеха.

var neighborhood = results[0].address_components[1].long_name; 
var clean = neighborhood.replace(/\W/g, ''); 

или

var clean = neighborhood.replace("ポンペーイア", "Clean Text"); 

Эти коды могут изменить любые другие «UTF-8» символов, но, кажется, что японские символы не распознаются.

Любые идеи?

+0

не @hwnd ничего не происходит, результат остается ポ ン ペ ー イ ア – suicidebilly

+1

Почему эти символы странно? Как кажется, это [** японское слово для Помпеи **] (https://translate.google.de/#ja/en/%E3%83%9D%E3%83%B3%E3%83%9A% E3% 82% A4% E3% 82% A2) –

+0

@ Dr.Molle, я уже знал, что это странно, потому что мой язык вообще не имеет японского персонажа. – suicidebilly

ответ

4

Это длинный и уродливый, но должен сделать трюк.

var clean = neighborhood.replace(/[\W\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4‌​e00-\u9faf\u3400-\u4dbf]/g, ''); 

следующие диапазоны:

  • \u3000-\u303f матчи японских символов пунктуации.
  • \u3040-\u309f соответствует Hiragana.
  • \u30a0-\u30ff соответствует Katakana.
  • \uff00-\uff9f спички Полноразмерная римская и полуширина Катакана.
  • \u4e00-\u9faf соответствует CJK (Общий и необычный кандзи)
  • \u3400-\u4dbf соответствует CJK ext.

Ссылка:

+0

Спасибо за объяснение и код. Работает отлично. – suicidebilly

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