Android Emoji表情の切り取りが不完全で、文字化けしている
954 ワード
問題の根本
切り取りが不完全で、もともと完全な表情が、2バイトとして切り取られた.表情が境界を切り取ると文字化けします.
解決策
バイト単位で切り取り、文字単位で切り取るように変更します.
切り取りが不完全で、もともと完全な表情が、2バイトとして切り取られた.表情が境界を切り取ると文字化けします.
解決策
バイト単位で切り取り、文字単位で切り取るように変更します.
/**
* Emoji
* @param resourse
* @param length , Emoji
* @return
*/
public static String subStr(@NonNull String resourse, int length){
char[] chars = resourse.toCharArray();
StringBuilder stringBuilder = new StringBuilder();
int sum = 0;
for (int i = 0; i < chars.length; i++) {
if (sum > length - 1) {
break;
}
if (isEmojiCharacter(chars[i])) {
stringBuilder.append(chars[i]);
stringBuilder.append(chars[i + 1]);
i = i + 1;
sum = sum + 1;
}else {
stringBuilder.append(chars[i]);
sum = sum + 1;
}
}
return stringBuilder.toString();
}
}