ICU 51 не загружает таблицу сопоставления данных ICU

Недавно я перешел с ICU32 на ICU51. Но теперь таблица сопоставления (.ucm) не загружается. Я искал net ant, пробовал исправления, например, убеждался, что путь правильный и заканчивается обратной косой чертой, но таблица сопоставления все еще не загружается.

sprintf((CCharT *)icuDataDir,"C:\\mybuilds\\icu_data\\");
u_setDataDirectory((CCharT *)icuDataDir);
u_init(&test);
retval = ucnv_countAvailable();
for(count_converter = 0 ;count_converter<retval; count_converter++)
         available_converters = ucnv_getAvailableName(count_converter);

значение теста - U_ZERO_ERROR, retval - 230. Но в списке доступных конвертеров я не вижу названия таблиц сопоставления, хранящихся в "C:\mybuilds\icu_data\".

Используя Process Monitor, я обнаружил, что мое приложение пытается получить доступ к файлу C:\mybuilds\icu_data\icu51l\my-cinversion-table.cnv, но раньше оно работало с C:\mybuilds\icu_data\my-cinversion-table. см


person Jitendra    schedule 24.11.2014    source источник


Ответы (1)


ICU_DATA необходимо установить в каталог, содержащий файл .cnv. Файл *.ucm необходимо преобразовать в файл .cnv с помощью утилиты makeconv.exe, поставляемой с библиотекой icu, и поместить эти файлы .cnv в папку ICU_DATA ->icu51l, чтобы решить проблему.

Process Monitor помог найти место, где icu искал таблицу сопоставления icu.

person Jitendra    schedule 25.11.2014