Ответ 1
Похоже, что мастер экспорта продуктов Eclipse не интерпретирует ваши файлы как UTF-8. Возможно, вам нужно запустить JVM Eclipse с кодировкой, установленной в UTF-8 (-Dfile.encoding=UTF8
в eclipse.ini
)?
(Copypasta'd при запросе OP)
Обратите внимание, что я не спрашиваю, как, но почему. И я не знаю, является ли это специфической проблемой RCP или если она что-то присуща java.
Мои исходные файлы java закодированы в UTF-8.
Если я определяю свои литералы, например:
new Language("fr", "Français"),
new Language("zh", "中文")
Он работает так, как я ожидаю, когда я использую строку в приложении, запустив ее из Eclipse в качестве приложения Eclipse:
Но если сбой при запуске .exe, созданного мастером экспорта продуктов Eclipse:
Решение, которое я использую, заключается в том, чтобы избежать таких символов, как это:
new Language("fr", "Fran\u00e7ais"), // Français
new Language("zh", "\u4e2d\u6587") // 中文
Нет никаких проблем при этом (все остальные строки находятся в файлах свойств, только имена языков жестко запрограммированы), но я хотел бы понять.
Я думал, что компилятор должен был преобразовать строки java literal при построении байт-кода. Итак, почему нужно избегать unicode? Неправильно ли использовать символы unicode с высоким диапазоном в исходных файлах Java? Что происходит именно с этими символами при компиляции и в чем они отличаются от обработки экранов с экранами? Проблема связана только с кешем RCP?
Похоже, что мастер экспорта продуктов Eclipse не интерпретирует ваши файлы как UTF-8. Возможно, вам нужно запустить JVM Eclipse с кодировкой, установленной в UTF-8 (-Dfile.encoding=UTF8
в eclipse.ini
)?
(Copypasta'd при запросе OP)
При экспорте подключаемого модуля он компилируется в процессе, отличном от обычного процесса сборки в среде IDE. Существует известная ошибка, что процесс сборки (PDE.Build) игнорирует текстовую кодировку, используемую IDE.
Экспорт может быть выполнен для правильной работы, указав текстовую кодировку в файле build.properties вашего плагина
javacDefaultEncoding.. =UTF-8