Передача аргументов, содержащих символы не ASCII, из bash в программу Java - PullRequest
0 голосов
/ 29 января 2019

Можно ли надежно передавать не-ASCII-символы в качестве аргументов командной строки от bash до CentOS продолжаю получать неправильно закодированные символы из args.

В моем случае это противный ASCII 85h символ, который определен только для Cp1250 но не для UTF-8 или ISO-8859 - *.

#!/bin/bash

IFS= read -r -n 10 -d '' ARG < "$INPUT_FILE"

java -jar foo.jar "$ARG"

Для оболочки LANG / LC_* нельзя установить Cp1250.Я предполагаю, что это может быть виновником, верно?Оболочка вроде пытается передать его «двоичным способом», но, по-видимому, терпит неудачу.

AFAIK, -Dfile.encoding можно использовать для переопределения обнаруженной кодировки оболочки JVM в args.Это актуально?Я пробовал это, но не повезло здесь.

...