영어 및 러시아어 텍스트를 사용자로부터 받아야하는 작은 응용 프로그램을 작성한 후 일부 처리를 수행합니다. 가능하면 String을 둘 다 사용하는 것을 선호합니다.Java - 러시아어 문자열 및 JTextField, String을 "???? ..."로 변경
내가 지금하고있는 방법은 스윙 라이브러리, 특히 JTextField를 사용하여 작성한 GUI가있는 것입니다.
영어 문자열의 경우에는 문제가 없습니다. 그러나 러시아 현악기는 계속 "???????"로 나오고 있습니다. 인코딩에 문제가있는 것처럼 느껴지지만 다른 일을해야한다는 것에 대한 모든 리소스를 찾지 못했습니다. 나는 CONSOL하는 JTextField.getText() 문자열의 인쇄하라는 메시지를 표시하고 TXT에 저장할 수 있어요 실제로 내 JFrame의 기반 GUI 내 JTextField를 추가하면
JLabel name_ru;
JTextField name_russian;
public Gui()
{
name_ru = new JLabel("Name in Russian:");
name_russian = new JTextField();
}
public void run()
{
ru_name = name_russian.getText();
System.out.println(ru_name);
}
: 여기
코드입니다 BufferedWriter를 사용하여 파일을 만듭니다. JTextField의 텍스트가 영어 인 경우,이 작업을 수행 할 때 아무런 문제가 없습니다. 그러나, 러시아어 텍스트 (또는 다른 비 영어 텍스트)로 시도하자마자 출력이 "??????????"로 표시됩니다. 텍스트가 JTextField에 들어오는 방식은 GUI가 실행되면 사용자가 입력하는 방식이 간단합니다.둘러 본 적이 있지만 여기에 게시 된 솔루션 (또는 찾을 수있는 곳) 중 아무 것도 JTextField 클래스를 다루지 않는 것으로 보입니다 .-getText()가 잘못 인코딩 된 문자열을 반환하는 것 같습니다. .. 그것을 바꿀 수있는 방법이 있습니까? 도움!
감사합니다. Eric.
저장 한 파일 또는 출력 "consol"에 문제가 있습니까? 귀하의 질문은 현재 명확하지 않습니다. –
죄송합니다. 내 답변이 있습니다. 문제는 콘솔 출력과 파일 출력 모두에있었습니다. 제가 UTF-8 출력을 허용하기 위해 일부 일식 설정이 누락 된 것으로 의심되기 때문에 출력했던 파일이 테스트였습니다. 두 가지 대답 모두 나를 해결할 수있었습니다. – Eric
다음에 질문 할 때 좀 더 구체적으로 시도해보십시오. 우리는 당신의 코드와 문제에 대한 설명이 모호했습니다. 다음 번에 더 좋은 질문을 쓸 수 있도록 http://tinyurl.com/so-list를 읽으십시오. –