Android适配IOS的换行符
当你遇到使用ios发布动态或者其他带换行符的文案在安卓上却没有换行的问题,使用下面代码就行了
ios换行的Unicode为\ud 安卓为\ua,实现思路就是把ios的文案转化为unicode把\ud替换为\ua,然后再把unicode转化为普通文本
/**
* 适配ios的换行符
*/
fun translate(et: TextView): String {
val str = et.text.toString()
val unicode = UnicodeUtil.string2Unicode(str)
val newUnicode = unicode.replace("\\ud", "\\ua")
val newStr = UnicodeUtil.unicode2String(newUnicode)
et.text = newStr
return newStr
}
/**
* 字符串转换unicode
*
* @param string
* @return
*/
fun string2Unicode(string: String): String {
val unicode = StringBuffer()
for (i in 0 until string.length) {
// 取出每一个字符
val c = string[i]
// 转换为unicode
unicode.append("\\u" + Integer.toHexString(c.toInt()))
}
return unicode.toString()
}
/**
* unicode 转字符串
*
* @param unicode 全为 Unicode 的字符串
* @return
*/
fun unicode2String(unicode: String): String {
val string = StringBuffer()
val hex = unicode.split("\\\\u".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
for (i in 1 until hex.size) {
// 转换出每一个代码点
val data = Integer.parseInt(hex[i], 16)
// 追加成string
string.append(data.toChar())
}
return string.toString()
}