SASGIS - SAS.Планета
View Issue Details
0002698SAS.ПланетаРефакторингpublic24-04-2015 02:0318-05-2015 10:20
vasketsov 
vdemidov 
normaltweakN/A
closednot fixable 
Windows7Ultimate
 
 
0002698: Unicode: Потенциальная ошибка в TMapCalibrationTab.SaveCalibrationInfo
Внутри TMapCalibrationTab.SaveCalibrationInfo:

  VFileName := ChangeFileExt(AFileName, cTabFileExt);

  VFileStream := TFileStream.Create(VFileName, fmCreate);
  try
    VName := ExtractFileName(AFileName);

Насколько я понял, "привязка" всегда Ansi.
Соответственно, при конвертации результата ExtractFileName получаем ситуацию, что имя внутри файла не соответствует имени оригинального файла в юникоде.
No tags attached.
related to 0002329resolved zed Имя файла на кириллице в кодировке UTF-8 (файл корреляции .tab) 
Issue History
24-04-2015 02:03vasketsovNew Issue
24-04-2015 04:35zedNote Added: 0015718
24-04-2015 06:17vasketsovNote Added: 0015721
24-04-2015 06:27vasketsovNote Edited: 0015721bug_revision_view_page.php?bugnote_id=15721#r6553
24-04-2015 06:27vdemidovRelationship addedrelated to 0002329
18-05-2015 10:20vdemidovNote Added: 0015939
18-05-2015 10:20vdemidovStatusnew => resolved
18-05-2015 10:20vdemidovResolutionopen => not fixable
18-05-2015 10:20vdemidovAssigned To => vdemidov
18-05-2015 10:20vdemidovStatusresolved => closed

Notes
(0015718)
zed   
24-04-2015 04:35   
И? Какие будут предложения?
(0015721)
vasketsov   
24-04-2015 06:17   
(edited on: 24-04-2015 06:27)
ХЗ. Даже идей нет.
Ведь имя файла дано нам свыше юзером, его нельзя менять (((.
Может я чего конечно не знаю про формат файла, в каких кодировках он может быть, есть ли аналогичные форматы.
Наверное, если ситуация в общем случае безвыходная, хотя бы квакать надо юзеру об этом.

(0015939)
vdemidov   
18-05-2015 10:20   
MapInfo не поддерживает юникод вообще, так что пользователю остается только обеспечить отсутствие в пути к склеенному файлу символов не попадающих в дефолтную локаль. Максимум что можно проверить, так это перед запуском склейки наличие таких символов в пути, но мне лень это делать.