Java에서 문자열을 GB2312 인코딩으로 변환하는 방법은 무엇입니까?

王林
풀어 주다: 2024-01-20 08:42:13
앞으로
566명이 탐색했습니다.

Java에서 문자열을 GB2312 인코딩으로 변환하는 방법은 무엇입니까?

Java에서 문자열을 GB2312 원본 인코딩으로 변환하는 방법

@테스트

공개 무효 test333(){

String a="青白";

시도해보세요 {

byte[] b=a.getBytes("GB2312");

System.out.println(bytesToHexFun1(b));

} catch(UnsupportedEncodingException e) {

e.printStackTrace();

}

}

//바이트 배열을 16진수 문자열로 변환

public static String bytesToHexFun1(byte[] bytes) {

char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5',

'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', ​​​​'f'};

// 바이트는 8비트이며 두 개의 16진수 숫자로 식별할 수 있습니다

char[] buf = 새로운 char[bytes.length * 2];

int a = 0;

int 인덱스 = 0;

for(byte b : bytes) { // 나눗셈과 나머지를 이용해 변환

if(b

a = 256 + b;

} 그 외 {

a = b;

}

buf[index++] = HEX_CHAR[a/16];

buf[index++] = HEX_CHAR[a % 16];

}

새 문자열(buf)을 반환합니다.

}

중심 아이디어는 먼저 GB2312 바이트 배열로 변환한 다음 16진수로 변환하는 것입니다.

java 문자열 바이트 변환 문제

1. 웹페이지에 중국어를 출력합니다.

네트워크 전송에서 JAVA가 사용하는 인코딩은 "ISO-8859-1"이므로 출력 시 다음과 같이 변환해야 합니다.

String str="중문\;

str=new String(str.getBytes("GB2312"),"8859_1");

그러나 프로그램 컴파일 시 사용한 인코딩이 "GB2312"이고 해당 프로그램이 중국 플랫폼에서 실행되는 경우에는 이런 문제가 발생하지 않으니 주의하시기 바랍니다.

2. 매개변수에서 중국어 읽기

이것은 웹페이지의 출력과 정확히 반대입니다.

str=new String(str.getBytes("8859_1"),"GB2312");

3.중국 이슈를 DB에서 관리하세요

더 간단한 방법은: "제어판"에서 "지역"을 "영어(미국)"로 설정하는 것입니다. 여전히 왜곡된 문자가 나타나면 다음 설정을 지정할 수도 있습니다.

중국어를 수강하는 경우: str=new String(str.getBytes("GB2312"));

DB에 중국어 입력: str=new String(str.getBytes("ISO-8859-1"));

4. JSP의 중국어 솔루션:

"제어판"에서 "지역"을 "영어(미국)"으로 설정하세요.

JSP 페이지에 추가:

그래도 정상적으로 표시되지 않을 경우 다음 변환을 수행해야 합니다.

예: name=new String(name.getBytes("ISO-8859-1"),"GBK");

중국어 문제는 없을 겁니다.

java 문자열 유형 변환

온라인에서 하나를 찾았으니 시도해 보세요.

/**

* 유니코드를 문자열로

* @param str

* @return

*/

public static String unicode2Str(String str) {

StringBuffer sb = 새로운 StringBuffer();

String[] arr = str.split("\\u");

int len ​​​​= arr.length;

sb.append(arr[0]);

for(int i=1; i

문자열 tmp = arr[i];

char c = (char)Integer.parseInt(tmp.substring(0, 4), 16);

sb.append(c);

sb.append(tmp.substring(4));

}

return sb.toString();

}

/**

* 문자열을 유니코드로 변환

* @param str

* @return

*/

public static String str2Unicode(String str) {

StringBuffer sb = 새로운 StringBuffer();

char[] charArr = str.toCharArray();

for (char ch : charArr) {

if (ch > 128) {

sb.append("\u" + Integer.toHexString(ch));

} 그 외 {

sb.append(ch);

}

}

return sb.toString();

}

public static void main(String[] args) {

System.out.println(str2Unicode("222dstest1testaa"));

문자열 str = "u6d4b1u8bd5aa";

System.out.println(unicode2Str(str));

}

위 내용은 Java에서 문자열을 GB2312 인코딩으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:docexcel.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿