java 문자열 왜곡 솔루션: (권장: java 비디오 튜토리얼)
System.out.println(str); String str1 = new String(str.getBytes("ISO-8859-1"), "utf-8"); System.out.println(str1); String str2 = new String(str.getBytes("gb2312"), "utf-8"); System.out.println(str2); String str3 = new String(str.getBytes("gbk"), "utf-8"); System.out.println(str3);
str.getBytes( charsetName ); charsetName은 원래 문자 인코딩입니다.
"utf-8"은 str을 utf-8 인코딩으로 변환하는 것입니다.
new String(str.getBytes("gbk"),"iso8859-1")
첫 번째 단계: byte[] bytes=str.getBytes("gbk ” )
"gbk" 메소드에서 중국어를 바이트 배열로 변환하도록 Java 가상 머신에 지시합니다. 한자는 2바이트에 해당합니다.
해당하는 두 번째 단계는 다음과 같습니다.
String s=new String(bytes,"iso8859-1"), 이때 각 바이트는 하나로 결합됩니다"?" 이때 s는 여러 개의 "?"를 의미하는 한자의 특수문자로 간주할 수 있으며, 이를 손실 없이 복원할 수 있다.
java.lang.String.getBytes(String charsetName) 메소드는 지정된 문자 세트를 사용하여 이 문자열을 바이트 시퀀스로 인코딩하고 결과를 새 바이트 배열에 저장합니다.
Declaration
다음은 java.lang.String.getBytes() 메서드의 선언입니다.
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
Parameter: charset -- 이것은 a 지원되는 문자 집합의 이름입니다.
반환 값: 이 메서드는 결과 바이트 배열을 반환합니다.
new String(byte[],decode) method
getBytes와 비교하면 new String(byte[], decode) Word를 통해 이 "매체"를 복원할 수 있습니다. # 🎜🎜#
This new String(byte[],decode)는 실제로 지정된 인코딩 디코드를 사용하여 byte[]를 문자열로 구문 분석합니다.Exception: UnsupportedEncodingException -- 지정된 문자 집합이 있는 경우 지원되지 않습니다. 자바에 대한 더 많은 지식은java 기본 튜토리얼 칼럼을 주목해주세요.
위 내용은 Java에서 문자열 왜곡 문자에 대한 솔루션 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!