试图弄清楚我应该拥有什么样的 unicode
trying to figure out what kind of unicode should i have
我正在 spring 启动一个从数据库中获取数据的项目,然后使用 post 方法通过 HTTP post 请求发送它们,一切正常但是对于 Latina,我在数据库中的数据编码为:ISO 8859-6
我已将其编码为 UTF-8
和 UTF-16
但它仍然是 return 不可读的文本问号和特殊字符
阿拉伯语测试示例:
مرحبا
在post方法之后应该是这样才有效和可靠:
06450631062d06280627
我不知道这里发生了什么样的编码,现在我正在做从 .NET
到 java
的整合:
这是他们在 .NET
中使用的内容:
public static String UnicodeStr2HexStr(String strMessage)
{
byte[] ba = Encoding.BigEndianUnicode.GetBytes(strMessage);
String strHex = BitConverter.ToString(ba);
strHex = strHex.Replace("-", "");
return strHex;
}
我只需要知道在java中应用了什么样的编码,如果有人给我提供方法会很有帮助:
我已经试过了,但是它 return 不同的值:
String encodedWithISO88591 = "مرحبا;
String decodedToUTF8 = new String(encodedWithISO88591.getBytes("ISO-8859-1"), "UTF-8");
您要获取的是 UTF-16BE
中阿拉伯字符串的十六进制表示
String yourVal = "مرحبا";
System.out.println(DatatypeConverter.printHexBinary(yourVal.getBytes(StandardCharsets.UTF_16BE)));
输出将是:
06450631062D06280627
我正在 spring 启动一个从数据库中获取数据的项目,然后使用 post 方法通过 HTTP post 请求发送它们,一切正常但是对于 Latina,我在数据库中的数据编码为:ISO 8859-6
我已将其编码为 UTF-8
和 UTF-16
但它仍然是 return 不可读的文本问号和特殊字符
阿拉伯语测试示例:
مرحبا
在post方法之后应该是这样才有效和可靠:
06450631062d06280627
我不知道这里发生了什么样的编码,现在我正在做从 .NET
到 java
的整合:
这是他们在 .NET
中使用的内容:
public static String UnicodeStr2HexStr(String strMessage)
{
byte[] ba = Encoding.BigEndianUnicode.GetBytes(strMessage);
String strHex = BitConverter.ToString(ba);
strHex = strHex.Replace("-", "");
return strHex;
}
我只需要知道在java中应用了什么样的编码,如果有人给我提供方法会很有帮助:
我已经试过了,但是它 return 不同的值:
String encodedWithISO88591 = "مرحبا;
String decodedToUTF8 = new String(encodedWithISO88591.getBytes("ISO-8859-1"), "UTF-8");
您要获取的是 UTF-16BE
String yourVal = "مرحبا";
System.out.println(DatatypeConverter.printHexBinary(yourVal.getBytes(StandardCharsets.UTF_16BE)));
输出将是:
06450631062D06280627