Java 문자열을 ASCII 바이트 배열로 변환하는 방법은 무엇입니까?
답변:
byte[] b = s.getBytes(StandardCharsets.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
클래스가 있습니다.
String.getBytes(Charset)
위 프로 요를 대상으로하고 싶은 경우에 당신이 할 수 없어, API (9) :( 그래서 때까지 추가되지 않았습니다.
시도한 코드에 잘못된 문자가 하나뿐입니다.
Charset characterSet = Charset.forName("US-ASCII");
String string = "Wazzup";
byte[] bytes = String.getBytes(characterSet);
^
대문자 "String"을 확인하십시오. 존재하지 않는 문자열 클래스에서 정적 메서드를 호출하려고합니다. 대신 문자열 인스턴스에서 메서드를 호출해야합니다.
byte[] bytes = string.getBytes(characterSet);
getBytes(Charset)
인코딩 할 수없고 인코딩 할 수없는 문자를 대체하도록 지정되어 있기 때문입니다. US-ASCII에서이 대체 문자는 물음표이므로 바이트 배열에는 ASCII 값이 '?'인 요소 하나가 포함됩니다. (63).
다른 제안 된 솔루션의 문제점은 ASCII에 직접 매핑 할 수없는 문자를 삭제하거나 ?
.
예를 들어 악센트 부호가있는 문자를 악센트없이 동일한 문자로 변환 할 수 있습니다. 이를 수행하는 몇 가지 트릭이 있지만 (직접 정적 매핑 테이블을 작성하거나 유니 코드에 대해 정의 된 기존 '정규화'를 활용하는 것을 포함하여) 이러한 방법은 완전하지 않습니다.
가장 좋은 방법은 junidecode를 사용하는 것입니다. 라이브러리를 라이브러리 완전 할 수는 없지만 유니 코드를 ASCII로 음역하는 가장 건전한 방법으로 많은 경험을 통합합니다.
Android에서이 기능이 필요하고 FroYo 이전 버전에서 작동하도록하려면 EncodingUtils.getAsciiBytes () 사용할 수도 있습니다 .
byte[] bytes = EncodingUtils.getAsciiBytes("ASCII Text");
해결책을 찾았습니다. 실제로 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();
}
}
}