Java 将整数转换为适当的字符表示形式

Java 将整数转换为适当的字符表示形式,java,string,utf-8,ascii,decode,Java,String,Utf 8,Ascii,Decode,我有一个文本文件的字符,我必须解码成它的原始字符序列 但是我不确定我在解码什么语言,我永远也不会知道(但我知道这不是英语) 因此,我使用频率分析来映射encoded.txt中最频繁的字符->特定语言中最频繁的字符。最不频繁的字符也是如此 设置完所有映射后,我通过转换函数运行encoded.txt。但它随后将转换后的字节打印为ascii字符 这显然不是我想要的(比如希腊字符)。我是否需要使用UTF-8作为字节表示?如果是这样的话,我该如何处理单个整数->字符,而不是数组,而不是字符串 使用频率分析

我有一个文本文件的字符,我必须解码成它的原始字符序列

但是我不确定我在解码什么语言,我永远也不会知道(但我知道这不是英语)

因此,我使用频率分析来映射encoded.txt中最频繁的字符->特定语言中最频繁的字符。最不频繁的字符也是如此

设置完所有映射后,我通过转换函数运行encoded.txt。但它随后将转换后的字节打印为ascii字符

这显然不是我想要的(比如希腊字符)。我是否需要使用UTF-8作为字节表示?如果是这样的话,我该如何处理单个整数->字符,而不是数组,而不是字符串

使用频率分析,我已经将文件解码成希腊语,但很明显,它是以某种日语格式或其他形式打印的。我如何用希腊字母表示?其他语言也是如此

String myCharacters = "my words";

// get bytes
byte[] bytes = myCharacters.getBytes();

// show string in UTF-8
new String(bytes, Charset.forName("UTF-8"));

// show string in ASCII
new String(bytes, Charset.forName("US-ASCII"));

或者,在这种情况下

byte myByte = (byte)125;
new String(new byte[]{myByte}, Charset.forName("UTF-8"));
最后,要处理0-255范围之外的多字节字符,请使用:

for(char c:myCharacters){
  byte[] bytes = Character.toString(c).getBytes("UTF-8");
  // bytes is a multi-byte character
}
颠倒

char ch2 = Character.forDigit(i2, 16);

你的问题为什么说“转换整数”?是否将encoded.txt中的字符保存为整数?如何将字符转换为字符串?是否设置了编码?我使用频率分析将encoded.txt中的字节映射到特定语言中的字节。但是,考虑到字节所使用的语言,我用什么编码格式来表示这些字节作为字符呢?比如说我的地图是23->125。然后当我打印125时,我需要将它打印为一个字符。我很确定ascii码不起作用。我需要使用UTF-8吗?如果是这样的话,我如何将125转换成UTF-8字符呢?我已经添加了截图我这样做了,它打印的大多数字符都是未知的。eclipse不能识别它们吗?请检查UTF-8字符映射。如果需要单字节字符,则无法处理它,因为0-255范围不完整。要对特殊字符进行编码,需要多字节输入