У меня есть Java-программа, которую я разрабатываю с Netbeans. Я изменил настройки на Netbeans, чтобы он понял UTF-8.Как изменить текстовое кодирование моей Java-программы?
Но если я уберу и создаю свою Программу и использую ее в своей системе Windows, изменения в текстовом кодировании и буквы типа «ü», «ä» и «ö» больше не отображаются и не используются.
Как я могу связаться с моей ОС и сказать ему использовать UTF-8?
Или есть ли какое-либо хорошее обходное решение?
EDIT: Sry для beeing так неспецифичен. Ну, в первую очередь: я использую Docx4j и Apache POI с методами getText(), чтобы получить некоторые тексты из doc, docx и pdf и сохранить их в String.
Затем я пытаюсь сопоставить ключевые слова в тех текстах, которые я читал из TXT-файла.
Эти ключевые слова отображаются в Combobox в исполняемом Java-файле. Я вижу проблемы с кодировкой. Он не будет соответствовать ни одному из ключевых слов, используя слова, описанные выше.
В моей IDE работает нормально. Я пытаюсь опубликовать код здесь, после того как я его перепроектирую.
TXT-файл находится в UTF-8. Если я преобразую его в ANSI, я вижу те же проблемы, что и в Jar. чтение из него:
if(inputfile.exists() && inputfile.canRead())
{
try {
FileReader reader = new FileReader(inputfilepath);
BufferedReader in = new BufferedReader(reader);
String zeile = null;
while ((zeile = in.readLine()) != null) {
while(zeile.startsWith("#"))
{
if (zeile.startsWith(KUERZELTITEL)) {
int cut = zeile.indexOf('=');
zeile = zeile.substring(cut, zeile.length());
eingeleseneTagzeilen.put(KUERZELTITEL, zeile.substring(1));
kuerzel = zeile.substring(1);
}
...
это сделал для меня:
File readfile = new File(inputfilepath);
BufferedReader in = new BufferedReader(
new InputStreamReader(
new FileInputStream(readfile), "UTF8"));
Thx!
Это очень неясно. Покажите нам код, который вы выполняете, сообщите нам, где печатаются символы (консоль, webapp, приложение Swing?) –
Java использует unicode в любом случае, зачем менять его на UTF-8? Где и что именно отображается неправильно? – Fildor
Будьте более конкретным. Java обрабатывает все строки как Unicode внутри. Вы пытаетесь читать из файла/stdin? Вы пытаетесь написать файл/stdout? – gkalpak