На машине с Linux(openSUSE) я пытаюсь развернуть приложение Tomcat 8 (war-файл), которое содержит файлы с именами с символами Unicode.

Внутри военного файла имя выглядит так:

бжк-природний-1496336830201.xml

но после развертывания файл выглядит так:

???-?????????????-1496336830201.xml

Кроме того, когда я вручную разархивирую файлы, имена также будут повреждены.

Как сказать unzip и Tomcat правильно развернуть имена файлов?

Кстати - я скачал этот файл войны на свой компьютер с Windows и разархивировал там - все выглядит хорошо.

ОБНОВЛЕНО

Это пример файла войны с именем файла в кодировке Юникод внутри: файл войны

Что не так с именем файла внутри этой войны?

2 ответа2

1

Я полагаю, вам нужен пакет unzip-rcc. Я проверил на своем компьютере, что если я использую unzip-rcc, я добьюсь успеха. Хотя, если я использую оригинальный распаковать, это не удается.

Я китайский пользователь, которому также нужен Unicode. Каждый раз, когда я устанавливаю openSUSE, этот пакет устанавливается с высоким приоритетом. ;-)

0

WAR фактически содержит имя файла, закодированное в UTF-8. Однако флаг, который говорит об этом (бит № 11 флагов общего назначения), не установлен, но это возможно, поскольку команда JAR использует другой вариант кодирования имени (это фактически имеет место с командой JAR, которая у меня есть).

Таким образом, реальный ответ: не используйте обычную команду ZIP для распаковки, а используйте саму команду JAR:

jar -xvf api.war

Урожайность:

created: WEB-INF/
created: WEB-INF/classes/
created: WEB-INF/classes/sample-data/
created: WEB-INF/classes/sample-data/decisions/
created: WEB-INF/classes/sample-data/decisions/novobudivy_refs/
inflated: WEB-INF/classes/sample-data/decisions/novobudivy_refs/13я-стац_я-великого-фонтану-1496338558663.xml

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .