SASGIS - SAS.Планета
View Issue Details
0002705SAS.Планета[All Projects] Багpublic26-04-2015 13:4118-05-2015 04:46
Parasite 
vdemidov 
normalminorhave not tried
resolvedfixed 
141212 
150915150915 
0002705: Unicode. В юникодной версии экспор в AUX неправильно записывает файл
Неправильная работа со строками при экспорте в AUX в юникодной версии программы. Сейчас в обычной версии файл формируется в Ansi. Имена файлов тоже в Ansi. Вопрос: в каком формате должны быть юникодные имена файлов?
No tags attached.
related to 0000062closed vdemidov Хотелось бы увидеть возможность генерации AUX-файлов описания мозаики для GeoExpress Server 
child of 0002166resolved zed Переход на версию Delphi с полной поддержкой юникода 
jpg ges.jpg (71,926) 17-05-2015 13:00
https://bugtracker.sasgis.org/file_download.php?file_id=1876&type=bug
jpg
Issue History
26-04-2015 13:41vdemidovNew Issue
26-04-2015 13:41vdemidovRelationship addedchild of 0002166
26-04-2015 13:41vdemidovStatusnew => confirmed
26-04-2015 13:57vdemidovDescription Updatedbug_revision_view_page.php?rev_id=6555#r6555
26-04-2015 13:59zedNote Added: 0015777
26-04-2015 14:00vdemidovNote Added: 0015778
26-04-2015 14:01zedRelationship addedrelated to 0000062
27-04-2015 03:54ParasiteNote Added: 0015780
27-04-2015 07:04vdemidovNote Added: 0015781
27-04-2015 12:26vdemidovReportervdemidov => Parasite
27-04-2015 12:26vdemidovStatusconfirmed => feedback
29-04-2015 04:18ParasiteNote Added: 0015783
29-04-2015 04:18ParasiteStatusfeedback => new
29-04-2015 06:27vdemidovNote Added: 0015784
03-05-2015 07:08vdemidovStatusnew => resolved
03-05-2015 07:08vdemidovFixed in Version => 150915
03-05-2015 07:08vdemidovResolutionopen => fixed
03-05-2015 07:08vdemidovAssigned To => vdemidov
17-05-2015 12:59ParasiteNote Added: 0015934
17-05-2015 13:00ParasiteFile Added: ges.jpg
17-05-2015 13:01ParasiteStatusresolved => confirmed
17-05-2015 13:02ParasiteNote Edited: 0015934bug_revision_view_page.php?bugnote_id=15934#r6596
17-05-2015 13:05zedNote Added: 0015935
18-05-2015 02:01ParasiteNote Added: 0015937
18-05-2015 04:46zedStatusconfirmed => resolved

Notes
(0015777)
zed   
26-04-2015 13:59   
А этот формат юникод понимает? Потому как исправить этот косяк можно двумя способами.
(0015778)
vdemidov   
26-04-2015 14:00   
Написал Паразиту. Он у нас главный специалист по этому формату. По его просьбе вообще делался экспорт.
(0015780)
Parasite   
27-04-2015 03:54   
Приаттачь реально генерируемый сейчас файл - я попробую всунуть в GES и посмотреть, что тот скажет.
(0015781)
vdemidov   
27-04-2015 07:04   
Та тебе проще самому сделать. Сделай файл на пару тайлов, а потом переименую папку с кэшом с добавлением символов не из активной локали и в сгенерированном файле исправь путь. Попробуй разные форматы: utf-8 (c BOM и без), utf-16 (c BOM и без)
(0015783)
Parasite   
29-04-2015 04:18   
Насколько я понимаю всю проблему - вопрос только с нац.символами в путях, и вопрос не в том возьмет ли GES "неправильный" список. Вопрос в том, сможет ли ОС найти файл по тому пути, который указан в файле (ибо GES работает с диском не напрямую, а тупо просит у оси отдать ему контент файла по пути ХХХХХ). То есть, вопрос собссно к оси - найдет ли оная файл с указанным абс.путем, или нет. То есть, путь до файла можно тупо копи-пастить из .AUX в Проводника (БЕЗ учета возможного декодирования Блокнотом при открытии), и пытаться открыть. Если ось его найдет - то его найдет и GES ничуть не хуже. Умная ось по идее должна понимать Unicode-стринги в путях автоматом, и перекодировать оные в соответствии с текущей региональной схемой. Имхо.

Как доберусь до GESа - буду попробовать, но сдается мне что вопрос явно не к нему. Быстро не обещаю - свободного времени почти ноль.
(0015784)
vdemidov   
29-04-2015 06:27   
>Вопрос в том, сможет ли ОС найти файл по тому пути, который указан в файле
Да.
>Умная ось по идее должна понимать Unicode-стринги в путях автоматом, и перекодировать оные в соответствии с текущей региональной схемой.
А вот тут ты ошибаешься. Таких осей нет. Линух ожидает имя файла в utf-8, винда пользуется utf-16le, но для обратной совместимости имеет функции принимающие Анси строки и кодирующие их в utf-16le в соответствии с текущей локалью. Так что все дел именно в программе и в том как она будет интерпретировать файл и какие функции вызывать. Программа может детектить тип файла по BOM и потом работать уже с перекодированным файлом. Может всегда считать что там utf-8 и перекодировать его в utf-16le для винды. Может считать что там всегда Ansi и тогда использовать пути с символами не из текущей локали будет невозможно. Вот и нужно выяснить как конкретная программа работает с этим файлом. Но я пока просто добавлю кодирование в utf-8. Для путей с английскими символами ничего не поменяется, а остальным, в худшем случае, не повезло - откроешь новый баг.
(0015934)
Parasite   
17-05-2015 12:59   
(edited on: 17-05-2015 13:02)
Проверил:
- ANSI - тайлов не находит (см.аттач)
- UNICIDE/noBOM - работает
- UNICIDE/BOM - работает

WinXP SP3

(0015935)
zed   
17-05-2015 13:05   
Текущая ночнушка сохраняет в UTF8. Где ты взял ANSI и зачем переоткрыл тикет?
(0015937)
Parasite   
18-05-2015 02:01   
>Текущая ночнушка сохраняет в UTF8. Где ты взял ANSI и зачем переоткрыл тикет?
Хм. А ты вообще тикет читал, не?
Выше было запрошено (от меня) потестировать AUX а разных кодировках оного (4й пост сверху). Вот, потестировал.

Сохраняет в UTF? Отлично. Так-то у меня русских путей все равно нет, так что лично мне - без разницы. Если ничего больше тут от меня не требуется - закрывай тикет.