Java 문자열을 ASCII 바이트 배열로 변환하는 방법은 무엇입니까?
Java 문자열을 ASCII 바이트 배열로 변환하는 방법은 무엇입니까?
getBytes
방법을 사용하여 적절한 Charset
(또는 Charset
이름)을 지정합니다.
예:
String s = "Hello, there.";
byte[] b = s.getBytes(StandardCharsets.US_ASCII);
(자바 7 전 : byte[] b = s.getBytes("US-ASCII");
)
구아바 사용자 라면 편리한 Charsets
수업이 있습니다.
String s = "Hello, world!";
byte[] b = s.getBytes(Charsets.US_ASCII);
그렇다 소스 코드가 훨씬 더 큰 장점을 가지고에 임의의 캐릭터 이름을 하드 코딩하지 가입일 : Charsets.US_ASCII
이다 Charset
유형 (하지 String
)를 체크 피할 그래서 UnsupportedEncodingException
단지에서 발생 String.getBytes(String)
있지만에서 String.getBytes(Charset)
.
Java 7에는 동등한 StandardCharsets
클래스가 있습니다.
시도한 코드에 잘못된 문자가 하나뿐입니다.
Charset characterSet = Charset.forName("US-ASCII");
String string = "Wazzup";
byte[] bytes = String.getBytes(characterSet);
^
대문자 "String"을 확인하십시오. 존재하지 않는 문자열 클래스에서 정적 메서드를 호출하려고합니다. 대신 문자열 인스턴스에서 메서드를 호출해야합니다.
byte[] bytes = string.getBytes(characterSet);
다른 제안 된 솔루션의 문제점은 ASCII에 직접 매핑 할 수없는 문자를 삭제하거나 ?
.
예를 들어 악센트 부호가있는 문자를 악센트없이 동일한 문자로 변환 할 수 있습니다. 이를 수행하는 몇 가지 트릭이 있지만 (직접 정적 매핑 테이블을 작성하거나 유니 코드에 대해 정의 된 기존 '정규화'를 활용하는 것을 포함하여) 이러한 방법은 완전하지 않습니다.
가장 좋은 방법은 junidecode 라이브러리를 사용하는 것입니다.이 라이브러리 는 완전 할 수는 없지만 유니 코드를 ASCII로 음역하는 가장 건전한 방법으로 많은 경험을 통합합니다.
String s = "ASCII Text";
byte[] bytes = s.getBytes("US-ASCII");
Android에서이 기능이 필요하고 FroYo 이전 버전에서 작동하도록하려면 EncodingUtils.getAsciiBytes () 사용할 수도 있습니다 .
byte[] bytes = EncodingUtils.getAsciiBytes("ASCII Text");
내 문자열에는 태국 문자 (TIS620 인코딩)와 독일어 움라우트가 있습니다. 애 질스의 대답은 저를 올바른 길로 인도했습니다. .getBytes () 대신 지금 사용합니다.
int len = mString.length(); // Length of the string
byte[] dataset = new byte[len];
for (int i = 0; i < len; ++i) {
char c = mString.charAt(i);
dataset[i]= (byte) c;
}
문자열을 ASCII 값으로 변환합니다.
String test = "ABCD";
for ( int i = 0; i < test.length(); ++i ) {
char c = test.charAt( i );
int j = (int) c;
System.out.println(j);
}
해결책을 찾았습니다. 실제로 Base64 클래스는 Android에서 사용할 수 없습니다. 자세한 내용은 아래 링크를 참조하십시오.
byte[] byteArray;
byteArray= json.getBytes(StandardCharsets.US_ASCII);
String encoded=Base64.encodeBytes(byteArray);
userLogin(encoded);
다음은 Base64 클래스에 대한 링크입니다. http://androidcodemonkey.blogspot.com/2010/03/how-to-base64-encode-decode-android.html
이 시도:
/**
* @(#)demo1.java
*
*
* @author
* @version 1.00 2012/8/30
*/
import java.util.*;
public class demo1
{
Scanner s=new Scanner(System.in);
String str;
int key;
void getdata()
{
System.out.println ("plase enter a string");
str=s.next();
System.out.println ("plase enter a key");
key=s.nextInt();
}
void display()
{
char a;
int j;
for ( int i = 0; i < str.length(); ++i )
{
char c = str.charAt( i );
j = (int) c + key;
a= (char) j;
System.out.print(a);
}
public static void main(String[] args)
{
demo1 obj=new demo1();
obj.getdata();
obj.display();
}
}
}
참고 URL : https://stackoverflow.com/questions/5688042/how-to-convert-a-java-string-to-an-ascii-byte-array
'developer tip' 카테고리의 다른 글
mod_rewrite에서 디렉토리를 어떻게 무시합니까? (0) | 2020.10.23 |
---|---|
Cygwin의 오프라인 설치 프로그램은 어디에서 다운로드 할 수 있습니까? (0) | 2020.10.23 |
리디렉션을 일으키지 않고 URL에 조각을 추가 하시겠습니까? (0) | 2020.10.23 |
if-else 또는 다른 비교 연산자를 사용하지 않고 최대 두 개의 정수를 찾는이 스 니펫을 설명 하시겠습니까? (0) | 2020.10.23 |
Bash의 배열로 명령 출력 읽기 (0) | 2020.10.23 |