String 特殊字符-字符串-二进制-Java
我尝试将字符串转换为二进制并返回。它工作得很好,但是如果我在字符串中有一个特殊字符,比如€,它会给我一个问号。我怎样才能解决这个问题 这是我将字符串转换为二进制的代码:String 特殊字符-字符串-二进制-Java,string,binary,special-characters,String,Binary,Special Characters,我尝试将字符串转换为二进制并返回。它工作得很好,但是如果我在字符串中有一个特殊字符,比如€,它会给我一个问号。我怎样才能解决这个问题 这是我将字符串转换为二进制的代码: // stringToBinary public static String stringToBinary(String message) { byte[] bytes = message.getBytes(); StringBuilder binary = new StringBuilder(); fo
// stringToBinary
public static String stringToBinary(String message) {
byte[] bytes = message.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++) {
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
return binary.toString();
}
谢谢你的帮助,很抱歉我的英语不好;)
编辑:我在这个列表中找到了欧元:>>克利克哇,我可以回答我自己的问题:O 我稍微编辑了我的代码,并尝试了一些方法,现在它可以工作了:
// stringToBinary
public static String stringToBinary(String message) {
StringBuilder binary = new StringBuilder();
for (char c : message.toCharArray()) {
int i = (int) c;
binary.append(Integer.toBinaryString(i));
binary.append(' ');
}
return binary.toString();
}
感谢所有想到我的问题的人:)哇,我可以回答我自己的问题:哦 我稍微编辑了我的代码,并尝试了一些方法,现在它可以工作了:
// stringToBinary
public static String stringToBinary(String message) {
StringBuilder binary = new StringBuilder();
for (char c : message.toCharArray()) {
int i = (int) c;
binary.append(Integer.toBinaryString(i));
binary.append(' ');
}
return binary.toString();
}
感谢所有想到我的问题的人:)你怎么称呼“特殊角色”?有什么不在ASCII集合中的吗?任何值高于255的问题?我在一秒钟前编辑了我的问题:DOkay,我想我看到了问题所在。您能检查您的欧元字符在Java中转换为什么数值吗?(您必须检查。可能有一些变体,但我认为Java默认为UTF8或Unicode。)它被转换为
10000000
。它也不适用于像这样的角色中 或漢 @JongWare这是意外的-这可能是某些本地编码或代码中的错误。这和我描述的完全不一样。这需要有更多Java经验的人来研究。你称之为“特殊字符”是什么?有什么不在ASCII集合中的吗?任何值高于255的问题?我在一秒钟前编辑了我的问题:DOkay,我想我看到了问题所在。您能检查您的欧元字符在Java中转换为什么数值吗?(您必须检查。可能有一些变体,但我认为Java默认为UTF8或Unicode。)它被转换为10000000
。它也不适用于像这样的角色中 或漢 @JongWare这是意外的-这可能是某些本地编码或代码中的错误。这和我描述的完全不一样。这需要有更多Java经验的人来研究。