欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Javaemoji持久化mysql的過(guò)程

本篇內(nèi)容主要講解“Javaemoji持久化MySQL的過(guò)程”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Javaemoji持久化mysql的過(guò)程”吧!

創(chuàng)新互聯(lián)建站2013年至今,先為鄄城等服務(wù)建站,鄄城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鄄城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

1、既然是由于移動(dòng)端的表情符號(hào)占位是4個(gè)字節(jié),那我們直接把數(shù)據(jù)轉(zhuǎn)換后保存。

1.URLEncoder.encode(String s, String enc)

使用指定的編碼機(jī)制將字符串轉(zhuǎn)換為 application/x-www-form-urlencoded 格式

URLDecoder.decode(String s, String enc)

使用指定的編碼機(jī)制對(duì) application/x-www-form-urlencoded 字符串解碼。

2、方法一的處理太粗躁,有沒(méi)有更好的解決辦法呢?使用輕量級(jí)工具emoji-java處理emoji表情字符

3、有了上面兩種方式,你是不是已經(jīng)滿足了,最為自己最推崇的emoji處理方式,下面才是重點(diǎn),首先說(shuō)一下上面兩種方式存在的問(wèn)題:第一種方式,數(shù)據(jù)經(jīng)過(guò)轉(zhuǎn)換,相當(dāng)于加密,我們將無(wú)法直接查看到數(shù)據(jù)的原始內(nèi)容,由其對(duì)于需要進(jìn)行搜索的業(yè)務(wù)場(chǎng)景,將是一件很困難的事情;第二種方式,雖然避免了第一種方式存在的問(wèn)題,但是它基于表情的對(duì)照表進(jìn)行匹配轉(zhuǎn)換的,也就意味著對(duì)于一些新表情,無(wú)法做到轉(zhuǎn)換,這就會(huì)導(dǎo)致我們數(shù)據(jù)插入繼續(xù)出現(xiàn)問(wèn)題,這是它第一個(gè)問(wèn)題,第二點(diǎn)在于它將表情轉(zhuǎn)化為對(duì)應(yīng)的匹配規(guī)則,說(shuō)白一點(diǎn)就是轉(zhuǎn)化為英文描述,就是這個(gè)轉(zhuǎn)化,原本4個(gè)字節(jié)的表情,它可能給你轉(zhuǎn)成了10個(gè)字節(jié)甚至更多。好了說(shuō)了這么多下面我們看一下我最后的終極解決方法:

/** * @Author: gaoshang * @Description: * @Date: 2019/7/19 */public class EmojiUtil { /**  * 將文本中的表情轉(zhuǎn)為十六進(jìn)制  * <p>  *  * @param input  * @return  */ public static String parseFromAliases(String input) {  if (input == null) {   return input;  }  return stringToUnicode(input); } /**  * 將文本中的十六進(jìn)制轉(zhuǎn)為表情  * <p>  *  * @param input  * @return  */ public static String parseToAliases(String input) {  if (input == null) {   return input;  }  return unicodeToString(input); } /**  * 字符串轉(zhuǎn)unicode  *  * @param str  * @return  */ public static String stringToUnicode(String str) {  StringBuilder sb = new StringBuilder();  StringBuilder cacheSB = new StringBuilder();  char[] c = str.toCharArray();  for (int i = 0; i < c.length; i++) {   if (!isEmojiCharacter(c[i])) {    if (cacheSB.length() > 0) {     sb.append("\\u").append(cacheSB);     cacheSB.delete(0, cacheSB.length());    }    sb.append("\\u").append("[").append(Integer.toHexString(c[i])).append("]");   } else {    if (c[i] == '[' || c[i] == '\\' || c[i] == ']') {     if (cacheSB.length() > 0) {      sb.append("\\u").append(cacheSB);      cacheSB.delete(0, cacheSB.length());     }     sb.append("\\u").append(c[i]);    } else {     cacheSB.append(c[i]);    }   }  }  if (cacheSB.length() > 0) {   if (sb.length() > 0) {    sb.append("\\u");   }   sb.append(cacheSB);  }  return sb.toString(); } /**  * unicode轉(zhuǎn)字符串  *  * @param unicode  * @return  */ public static String unicodeToString(String unicode) {  StringBuilder sb = new StringBuilder();  String[] hex = unicode.split("\\\\u");  for (int i = 0; i < hex.length; i++) {   if (hex[i].indexOf("[") == 0 && hex[i].indexOf("]") == hex[i].length() - 1) {    try {     int index = Integer.parseInt(hex[i].substring(1, hex[i].length() - 1), 16);     sb.append((char) index);    } catch (NumberFormatException e) {     sb.append(hex[i]);    }   } else {    sb.append(hex[i]);   }  }  return sb.toString(); } private static boolean isEmojiCharacter(char codePoint) {  return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA)    || (codePoint == 0xD)    || ((codePoint >= 0x20) && (codePoint <= 0xD7FF))    || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))    || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF)); }}

到此,相信大家對(duì)“Javaemoji持久化mysql的過(guò)程”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前標(biāo)題:Javaemoji持久化mysql的過(guò)程
轉(zhuǎn)載注明:http://aaarwkj.com/article4/iihpie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈標(biāo)簽優(yōu)化、App開(kāi)發(fā)、虛擬主機(jī)、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
蜜桃人妻av一区二区三区| 果冻国产精品麻豆成人av| 亚洲乱码一区二区在线| 手机黄色av免费在线网址 | 人妻熟妇av在线一区二区三区| 欧美人与性禽动交情品| 无毛亚洲视频在线观看| 亚洲成人日韩成人av| 九九视频在线观看免费专区| 欧美日韩亚洲一区视频| 青青草日韩视频在线观看| 午夜少妇诱惑一区二区三区| 久久久国产精品免费看| 日本少妇人妻中文字幕| 国产精品亚洲av三区国产毛片| 日本又色又爽又黄的观看| 男人的天堂av东京热一区| 久久精品女人天堂av免费观看| 亚洲一区二区三区av蜜桃| 亚洲黄色片成年人免费观看| 日本 午夜 在线 视频| 久久一区二区三区播放| 亚洲熟女av一区少妇| 九九热在线免费观看精品视频| av毛片高清在线观看| 亚洲一区精品中文字幕 | 少妇高潮时会抱紧男人脖子| 国产午夜视频在线观看一区| 久久一区二区三区播放| 福利视频免费观看欧美| 最新亚洲av熟女播放| 久久99热最新地址获取| 99热国产这里只有精品| 蜜桃精品一区二区三区在线观看| 欧美色一区二区三区四区| 成年人的黄色大片网站| 四虎国产精品久久久久久网址| 亚洲成av人在线观看福利| 中文字幕四虎在线观看| 久久偷拍一区二区三区| 蜜臀视频一区二区在线播放|