SASGIS - SAS.Планета
View Issue Details
0002902SAS.Планета[All Projects] Багpublic11-11-2015 15:4513-05-2016 07:20
vdemidov 
vdemidov 
normalminoralways
closedwon't fix 
151111 
 
0002902: Склеивание в Ecw не поддерживает юникодные имена результирующих файлов
Библиотека склеивания в ecw принимает в качестве имени файла AnsiString, поэтому в юникодной версии, если имя файла содержит символы не из основной локали, могут случиться глюки.
No tags attached.
related to 0002880resolved zed Возможно есть проблемы в экспорте в Ecw c использовании PChar в юникодной версии 
parent of 0002910resolved vdemidov Добавить в фрейм парметров склейки информацию о поддержке юникода в имени файла 
related to 0002909resolved vdemidov Добавить в IMapCalibration информацию о поддержке юникода в имени файла 
Issue History
11-11-2015 15:45vdemidovNew Issue
11-11-2015 15:45vdemidovIssue generated from: 0002880
11-11-2015 15:45vdemidovRelationship addedrelated to 0002880
11-11-2015 15:45vdemidovStatusnew => confirmed
11-11-2015 16:29zedNote Added: 0016780
11-11-2015 18:10vdemidovNote Added: 0016781
11-11-2015 18:11zedNote Added: 0016782
11-11-2015 18:23zedNote Added: 0016783
11-11-2015 18:30vdemidovNote Added: 0016784
12-11-2015 10:14vdemidovNote Added: 0016787
15-11-2015 21:41zedNote Added: 0016837
15-11-2015 22:15vdemidovNote Added: 0016838
18-11-2015 09:33vdemidovRelationship addedrelated to 0002909
18-11-2015 09:36vdemidovRelationship addedparent of 0002910
18-11-2015 09:42vdemidovTarget Version191221 => 160606
13-05-2016 07:20vdemidovStatusconfirmed => resolved
13-05-2016 07:20vdemidovResolutionopen => won't fix
13-05-2016 07:20vdemidovAssigned To => vdemidov
13-05-2016 07:20vdemidovStatusresolved => closed
13-05-2016 07:20vdemidovTarget Version160606 =>

Notes
(0016780)
zed   
11-11-2015 16:29   
Нужно сделать какую-то функцию, которая будет проверять есть ли в строке символы не из основной локали и может ли строка быть безопасно преобразована в AnsiString.

Помимо ECW, эта функция пригодится ещё как минимум для GoolgeEarth и наверняка ещё где-нибудь.
(0016781)
vdemidov   
11-11-2015 18:10   
Та что там ее делать. Преобразуем строку в AnsiString, а потом назад в UnicodeString. А потом сравниваем с исходной. Если изменилось, то нельзя использовать в функциях без поддержки юникода.
(0016782)
zed   
11-11-2015 18:11   
Да, примерно так я её себе и представлял :)
(0016783)
zed   
11-11-2015 18:23   
В юните u_SafeStrUtil есть проверка на то, что строка содержит только латинские символы, туда же надо добавить и новую функцию.
(0016784)
vdemidov   
11-11-2015 18:30   
Согласен
(0016787)
vdemidov   
12-11-2015 10:14   
А еще нужно в типы тайлохранилищ, типы файлов привязки и в фрейм настроек склейки добавить параметр сообщающий о поддержке юникода. Что бы можно было путь и имя файла не проверять, если все поддерживается, и выдавать сообщение если есть проблема.
(0016837)
zed   
15-11-2015 21:41   
А ещё можно при чтении настроек в неюникодной версии её использовать и предупреждать, когда utf-8 невозможно преобразовать в string без потерь.
(0016838)
vdemidov   
15-11-2015 22:15   
> А ещё можно при чтении настроек в неюникодной версии её использовать и предупреждать, когда utf-8 невозможно преобразовать в string без потерь.

Можно, одно не понятно, причем это к экспорту в ecw?