SASGIS - SAS.Планета
View Issue Details
0002695SAS.Планета[All Projects] Багpublic22-04-2015 14:5624-04-2015 00:02
zed 
vdemidov 
normalminorhave not tried
resolvedfixed 
141212 
150915150915 
0002695: Юникод: Проблемы с кодировкой в описании метки, созданной через IGeoCodePlacemarkFactory и пустом поле AFullDesc
Напоролся на баг, что в XE2 если не указывать AFullDesc при создании метки, как это делается в геокодере яндекса, то при клике по метке в окне браузера получаются кракозябры.
Пример создания глючного описания:

VPlace := PlacemarkFactory.Build(VPoint, VName, VDescription, '', 4); (u_GeoCoderByYandex.pas)
юникод
jpg Image 2.jpg (153,618) 23-04-2015 09:04
http://www.sasgis.org/mantis/file_download.php?file_id=1863&type=bug
jpg
Issue History
22-04-2015 14:56zedNew Issue
22-04-2015 14:57zedDescription Updatedbug_revision_view_page.php?rev_id=6543#r6543
22-04-2015 14:57zedAdditional Information Updatedbug_revision_view_page.php?rev_id=6545#r6545
22-04-2015 15:05zedTag Attached: юникод
23-04-2015 08:29vasketsovNote Added: 0015686
23-04-2015 08:34zedNote Added: 0015687
23-04-2015 08:56vasketsovNote Added: 0015688
23-04-2015 08:59zedNote Added: 0015689
23-04-2015 09:04zedFile Added: Image 2.jpg
23-04-2015 09:05zedNote Added: 0015690
23-04-2015 09:17vdemidovNote Added: 0015691
23-04-2015 09:24zedNote Added: 0015692
23-04-2015 10:01vdemidovNote Added: 0015694
23-04-2015 10:03vdemidovNote Added: 0015695
23-04-2015 10:09zedNote Added: 0015696
23-04-2015 10:14zedNote Edited: 0015696bug_revision_view_page.php?bugnote_id=15696#r6547
23-04-2015 10:21vdemidovNote Added: 0015697
23-04-2015 10:23zedNote Added: 0015698
23-04-2015 10:30vdemidovNote Added: 0015699
23-04-2015 10:33zedNote Added: 0015700
23-04-2015 10:36vdemidovNote Edited: 0015699bug_revision_view_page.php?bugnote_id=15699#r6549
23-04-2015 10:37vdemidovNote Added: 0015701
23-04-2015 10:49vdemidovStatusnew => confirmed
23-04-2015 10:49vdemidovTarget Version => 150915
23-04-2015 15:24vasketsovNote Added: 0015706
23-04-2015 15:29vasketsovNote Edited: 0015706bug_revision_view_page.php?bugnote_id=15706#r6551
23-04-2015 15:33vdemidovNote Added: 0015707
23-04-2015 16:42vasketsovNote Added: 0015709
23-04-2015 20:47vdemidovNote Added: 0015713
23-04-2015 20:58vdemidovStatusconfirmed => resolved
23-04-2015 20:58vdemidovFixed in Version => 150915
23-04-2015 20:58vdemidovResolutionopen => fixed
23-04-2015 20:58vdemidovAssigned To => vdemidov
24-04-2015 00:02vasketsovNote Added: 0015715

Notes
(0015686)
vasketsov   
23-04-2015 08:29   
Подозреваю, это из-за SML, потому что в SQLite3 проблем нет.
(0015687)
zed   
23-04-2015 08:34   
Оно ж как бы в метки и не попадает. Это результаты поиска, которые отображаются как метки. Подозреваю, что где-то на пути к браузеру, который выводит описание, есть ansi преобразование. Но где оно там глючит, не нашёл.
(0015688)
vasketsov   
23-04-2015 08:56   
>метки и не попадает
Тогда каким образом оно попадает в browser?
Не понимаю.
Может по wiki или по метке всё же кликаешь?
Впрочем, с wiki на XE2 как раз нет проблем.
Хотя ладно, видимо что-то не догоняю. Забей.
(0015689)
zed   
23-04-2015 08:59   
Естественно, при клике по метке (красный кружок aka результат поиска) на карте и открывается это описание.
(0015690)
zed   
23-04-2015 09:05   
Приложил скриншот. Вместо мусора, в описании должно быть: "Минская область, Беларусь".
(0015691)
vdemidov   
23-04-2015 09:17   
А в других геокодерах оно точно все нормально показывает?
(0015692)
zed   
23-04-2015 09:24   
И в других тоже. Гугл, OSM, Яндекс: даже если в FullDesc что-нибудь и прописать - не помогает. Вчера для яндекса почему-то помогало.
(0015694)
vdemidov   
23-04-2015 10:01   
Это похоже сам эксплорер уже глючит.
Нужно в TTextByVectorItemHTMLByDescription.GetText добавить указание что кодировка юникодная в юникодной версии программы. Или в TInternalDomainInfoProviderByLastSearchResults добавить в AContentType := 'text/html'; указание юникодной кодировки.
(0015695)
vdemidov   
23-04-2015 10:03   
Еще вариант в TBinaryData.CreateByString в юникодной версии добавлять BOM в начало блока.
(0015696)
zed   
23-04-2015 10:09   
(edited on: 23-04-2015 10:14)
Функция TTextByVectorItemHTMLByDescription.GetText вообще не вызывается ни разу.

Срабатывает TInternalDomainInfoProviderByLastContent.LoadBinaryByFilePath

(0015697)
vdemidov   
23-04-2015 10:21   
А, ну да. значит:
Или в TInternalDomainInfoProviderByLastContent.LoadBinaryByFilePath добавить в AContentType := 'text/html'; указание юникодной кодировки.
Еще вариант в TBinaryData.CreateByString в юникодной версии добавлять BOM в начало блока.
(0015698)
zed   
23-04-2015 10:23   
> указание юникодной кодировки.
Что конкретно писать?
(0015699)
vdemidov   
23-04-2015 10:30   
(edited on: 23-04-2015 10:36)
А чтоб я знал. Нужно попробовать что-то типа "text/html; charset=UTF-16"
Возможно вместо UTF-16 нужно что-то другое. Например UTF-16LE

(0015700)
zed   
23-04-2015 10:33   
Перепробовал всё что можно и похоже, что оно игнорирует строчку charset. Пробовал и в utf-8 перегнать - ситуация аналогичная. Вид кракозябров поменялся, кодировку игнорит...
(0015701)
vdemidov   
23-04-2015 10:37   
Ну, вариант добавить BOM символ в TBinaryData.CreateByString.
(0015706)
vasketsov   
23-04-2015 15:24   
(edited on: 23-04-2015 15:29)
Фигасе вы тут разогнались ))) уже до BOM руками докатились )))
Беру метку из геокодера гугла.
Создаю по ней по ПКМ обычную метку.
Прямо вот в Пекине, с иероглифами.
Кликаю по ней.
В броузере всё отлично.
ЧЯДНТ?
upd. Про иероглифы нагнал, хинты только работают и вики, иероглифы на знаки вопроса заменились. А вот при поиске
"Минск" и клике в броузере показывается именно "Минск, Беларусь ".
Может это из-за того, что у меня нет EmbeddedWB?

(0015707)
vdemidov   
23-04-2015 15:33   
> Создаю по ней по ПКМ обычную метку.
А при чем здесь метки? Речь про нажатие на маркер результатов поиска.

> Может это из-за того, что у меня нет EmbeddedWB?
Все может быть.
(0015709)
vasketsov   
23-04-2015 16:42   
>Речь про нажатие на маркер результатов поиска
То же самое, что и с метками, то есть, всё нормально, "Минск, Беларусь ".
(0015713)
vdemidov   
23-04-2015 20:47   
Может проблема и в EmbeddedWB но добавление BOM ее исправляет.
(0015715)
vasketsov   
24-04-2015 00:02   
>добавление BOM
Хм. Не слишком ли глобально?
Лечится в браузере по месту тоже отлично. Залил как. Может и в EmbeddedWB так прокатит. Сейчас у меня проблем вроде не осталось с метками.