Как перекодировать формат файла при архивации тела запроса в zip (jmeter)?

При архивации тела запроса в формате хмл в зип архив, файл записывается в кодировке unsi, то есть кириллица, которой в выписке очень много, не отображается корректно. Пробовал прописать дефолтную кодировку через джметр пропертис, не помогает, пробовал через семплер прописать логику prev.setDataEncoding("UTF-8"), все равно файл пакуется в анси, также пробовал в джметр.бат определить prev.setDataEncoding("UTF-8"), все равно не помогает, может есть какие то варианты сделать принудительную запись в ютф8 в самой логике кода?


def destination = new java.util.zip.ZipOutputStream(new FileOutputStream(new File('request' + ${__Random(100000,200000,)} + '.zip')))

destination.putNextEntry(new java.util.zip.ZipEntry(prev.getSampleLabel() + '.xml'))
destination << prev.getSamplerData().bytes


destination.close() 

Ответы (1 шт):

Автор решения: Dmitri T

Файл записывается в дефолтной кодировке для JVM (значение системной проперти file.encoding), которую можно задать в файле system.properties

Если вы хотите поменять кодировку принудительно только для вашего куска кода, который делает ZIP архив - это тоже можно:

на уровне конструктора ZipOutputStream

def destination = new java.util.zip.ZipOutputStream(new FileOutputStream(new File('request' + ${__Random(100000,200000,)} + '.zip')), StandardCharsets.UTF_8)

и при записи запроса в файл

destination << prev.getSamplerData().getBytes(StandardCharsets.UTF_8)
→ Ссылка