4 바이트 값을 포함 할 수있는 가변 문자를 만들려면 어떻게해야합니까?Java에서 16 비트 char을 생성하는 데 문제가 있습니다.
재미있는 내용으로 자바에서 메시지를 암호화하는 프로그램을 작성하려고합니다. RSA 사용법을 알아 냈고 메시지를 암호화하고 .txt 파일로 저장하는 프로그램을 작성했습니다. 예를 들어 "Quiet"를 입력하면 결과는 "041891090280"이됩니다. 번호가 항상 6의 배수가되도록 코드를 작성했습니다. 그래서 숫자를 해시 코드로 변환 할 수 있다고 생각했습니다. 처음 세 글자는 "041"이므로이를 ")"로 변환 할 수 있습니다.
그러나 255보다 큰 숫자로 문자를 생성하는 데 문제가 있습니다. 온라인에서 살펴본 결과 몇 가지 예가 있지만이를 구현하는 방법을 알 수는 없습니다. 나는 그 (것)들을 시험하기 위하여 다만 새로운 방법을 창조했다.
int a = 256;
char b = (char) a;
char c = 0xD836;
char[] cc = Character.toChars(0x1D50A);
System.out.println(b);
System.out.println(c);
System.out.println(cc);
프로그램 출력
?
?
?
저는 2 바이트 밖에받지 못합니다. 나는 자바가 유니 코드를 사용하는데, 이는 4 바이트 인 65535까지 올라야한다는 것을 읽었다. 차이가 나는 경우 이클립스 사용하고 있습니다.
멍청한 질문에 사과드립니다. 그리고 미리 감사드립니다.
편집 죄송합니다. 정보를 너무 많이 주었고 혼란에 빠졌습니다. 내가 원하는 것은 숫자 문자열을 유니 코드 문자의 문자열로 저장하는 것입니다. 그걸하는 법을 아는 유일한 방법은 캐릭터에 맞추기에 충분히 작은 숫자의 줄을 끊는 것입니다. 그런 다음 문자를 하나씩 새 문자열에 추가하십시오. 하지만 변수 유니 코드 문자를 문자열에 추가하는 방법을 모르겠습니다.
Java의 문자는 기본 다국어 평면의 문자 만 인코딩하지 않습니다. –
참조 http://stackoverflow.com/questions/13112435/how-does-java-store-utf-16-characters-in-its-16-bit-char-type –
죄송합니다. 타일에서 32 비트라고 말한 것을 깨달았습니다. 나는 16 비트를 말해야했다. – user2452405