텍스트 상자와 버튼이 있습니다.こ ん に ち는 텍스트 상자에 일본어 문자를 입력하고 있습니다.자바에서 일본어 문자가 제대로 표시되지 않습니다.
버튼을 클릭하면 이메일이 텍스트 상자의 텍스트와 함께 전송됩니다.
그러나 이메일을 수신하면 일본어 문자 대신 일부 정크 문자가 표시됩니다.
아무도 왜 이것이 일어나고 있는지 말해 줄 수 있습니까?
미리 감사드립니다.
텍스트 상자와 버튼이 있습니다.こ ん に ち는 텍스트 상자에 일본어 문자를 입력하고 있습니다.자바에서 일본어 문자가 제대로 표시되지 않습니다.
버튼을 클릭하면 이메일이 텍스트 상자의 텍스트와 함께 전송됩니다.
그러나 이메일을 수신하면 일본어 문자 대신 일부 정크 문자가 표시됩니다.
아무도 왜 이것이 일어나고 있는지 말해 줄 수 있습니까?
미리 감사드립니다.
유니 코드와 같이 일본어 문자를 지원하는 문자 집합을 사용해야합니다. String
객체를 생성 할 때
, 당신은 문자 인코딩을 지정할 수 있습니다 오버로드 된 생성자가 : 바이트 문자열을 변환 할 때 또한
byte[] utf8Characters = { /* UTF-8 encoded characters */ };
String s = new String(characters, "UTF-8"); // Decode bytes using UTF-8.
(즉 데이터를 스트리밍 할 때) 다음을 사용할 수 있습니다
을byte[] utf8EncodedBytes = s.getBytes("UTF-8"); // Encode to UTF-8.
문자 인코딩을 지정하지 않으면 필요한 문자를 지원하지 않는 일부 문자 세트가 기본값으로 사용됩니다.
Java Doc : "기본 문자 집합은 가상 시스템을 시작하는 동안 결정되며 일반적으로 기본 운영 체제에서 사용되는 로캘과 charset에 따라 다릅니다." 정말 확실
Hello snipes83, 답장을 보내 주셔서 감사합니다. 제안한대로 시도했지만 여전히 정크 문자를보고 있습니다. 나는 바이트 [] b = myEntity.getTextBoxValue(). getBytes ("UTF-8"); 문자열 값 = 새 문자열 (b, "UTF-8"); System.out.println (value); // π ?? π ?? π? ¬π ??을 출력합니다. 문자 – user2448398
@user2448398 myEntity.getTextBoxValue()에 의해 주어진 문자열을 인쇄 할 때 프로그램에서 쓰레기를 준다면 문제는 아마도 myEntity가 charset 인코딩을 처리하는 방법 일 것입니다. myEntity는 무엇을 나타 냅니까? – Snps
그냥 텍스트 상자에 입력 된 값을 보유하고 있습니다. 공용 클래스 MyEntity {개인 문자열 textBoxValue; // getter, setter of this}. – user2448398
메신저하지 당신은 자바 서블릿을 사용하지만, 당신이 할 경우, 당신은이
request.setCharacterEncoding("UTF-8");
는 당신이 인코딩을 사용하고 아십니까 시도 할 수 있다면? – asteri
메시지 본문을 만드는 데 사용하는 코드 표시 – fge
String str = myEntity.getTextBoxValue(); StringBuilder strb = new StringBuilder(); strb.append (str); return strb.toString(); – user2448398