我正在尝试将字符串转换为希伯来语编码(Windows 1255),因此我需要从任何 char 1264 的值中减去并将其放入新字符串中。
这是我尝试转换的 JavaScript 代码:
strText = strText.replace(/[א-ת]/ig, function(a,b,c) {
return escape(String.fromCharCode(a.charCodeAt(0)-1264));
});
这是我用 Java 制作的,但没有得到预期的值:
String test = "שלום";
byte[] testBytes = test.getBytes();
String testResult = "";
for (int i = 0;i < testBytes.length;i++)
{
testResult += (char)((int)testBytes[i]-1264);
}
我做错了什么?
最佳答案
由于您使用的是byte
数组,可以存储的最大数量是255,最小数量是0,所以它只能存储扩展的ASCII字符(据我所知,它不包括希伯来语人物)。您需要的是一个 char
数组(可以存储任何 unicode 字符)。
所以,改变这个
byte[] testBytes = test.getBytes();
到此
char[] testBytes = test.toCharArray();
关于Java减去字符串中的字符代码的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27889511/