【发布时间】:2021-11-20 08:08:10
【问题描述】:
我正在用 Java ME 为旧的 Symbian 设备(而不仅仅是它们)编写一个应用程序。我有个问题。我正在尝试使用 png 图像绘制表情符号。它们存储在某个服务器上的 2 个文件夹中。第一个文件夹在 2017 年后不包含新的表情符号,我必须更改我的代码。 猜测文件名的旧代码:
Integer.toHexString((int) text.toCharArray()[ii-1]).toUpperCase()+Integer.toHexString((int) text.toCharArray()[ii]).toUpperCase()+".png"
这有助于我转换 ????具有 2 个符号的整数代码的表情符号 55356 57147 到 D83CDF3B.png
现在我需要得到
f09f8cbb.png 来自同一个表情符号。
网站
https://unicode-table.com/en/1F33B/ 表示 UTF-8 F0 9F 8C BB 和
UTF-16BE D8 3C DF 3B 是一样的。如何从 UTF16BE 转换为 UTF-8 ?我在网上找到的所有代码都是用 C 或 Javascript 编写的,不适合我。
在 StackOverflow 上,我也找到了这段代码
try {
// Convert from Unicode to UTF-8
String string = "\u003c";
byte[] utf8 = string.getBytes("UTF-8");
// Convert from UTF-8 to Unicode
string = new String(utf8, "UTF-8");
} catch (UnsupportedEncodingException e) {
}
但它返回的字符串与我给它的字符串相同。
【问题讨论】:
-
"但它返回的字符串与我给它的字符串相同。"是的,因为您要的是 UTF-8 字节,然后从 UTF-8 字节构造一个字符串。
-
@AndyTurner 不过,这里提供此代码作为答案stackoverflow.com/questions/9075603/…