Польские буквы от JTextField
Как получить String
от JTextField
или же JTextArea
с польскими буквами? когда я использую myTxtArea.getText()
и в моем JTextArea
у меня есть ĄĆĘŁŃÓŚŹŻąćęłńóśźż
это только признает ?????Ó????????ó???
,
Текст из обоих JTextField
а также JTextArea
будет сохранен в файле *.txt
Это мой код:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MyAppCreateAcc {
public static void main(String[] args) throws IOException {
AppGUI ag = new AppGUI();
}
public MyAppCreateAcc() throws IOException {
String group = AppGUI.getGroup().getText();
String[] lines = AppGUI.getNote().getText().split("\\n");
BufferedWriter w = new BufferedWriter(new FileWriter(
"zaloz_konta.cmd"));
w.write("mode con codepage select=1250");
w.newLine();
for (int j = 0; j < lines.length; j++) {
/*
* delete more than one space between words and from the full name
* create a short one first letter of name and surname after all
* lowercase like on example: John Smith = jsmith
*/
if (lines[j] == null || lines[j].equals("")) {
// if there is a gap between the names do nothing
} else {
lines[j] = lines[j].trim().replaceAll(" +", " ");
Pattern pattern = Pattern.compile("\\s([A-Za-z]+)");
Matcher matcher = pattern.matcher(lines[j]);
String shortName = "";
if (matcher.find()) {
shortName = (lines[j].charAt(0) + matcher.group(1))
.toLowerCase();
}
w.write("call konto.cmd " + shortName + " \"" + lines[j]
+ "\" 123 " + "\"" + group + "\"");
w.newLine();
}
}
w.close();
}
}
Я хочу получать польские письма только от:
String[] lines = AppGUI.getNote().getText().split("\\n");
3 ответа
Решение
Для использования JTextCompoents
JTextComponent.write() для вывода в FileIO
JTextComponent.read () для загрузки данных из FileIO
по умолчанию принимаются разделители и файлы кодирования страницы
Вы хотите использовать кодировку UTF-8. Попробуй
String s = new String(AppGUI.getNote().getText().getBytes(), "UTF-8");
String[] lines = s.split("\\n");
Я продлил pattern
и это также помогло:
lines[j] = lines[j].trim().replaceAll(" +", " ");
Pattern pattern = Pattern.compile("\\s([A-Za-ząćęłńóśźżĄĘŁĆŃÓŚŹŻ]+)");
Matcher matcher = pattern.matcher(lines[j]);