成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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ù)咨詢(xún)服務(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)滿(mǎn)足了,最為自己最推崇的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)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前標(biāo)題:Javaemoji持久化mysql的過(guò)程
轉(zhuǎn)載注明:http://jinyejixie.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)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(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ù)器托管
鄂伦春自治旗| 肇州县| 周口市| 长治市| 百色市| 眉山市| 汉阴县| 玉门市| 望谟县| 章丘市| 浮山县| 德钦县| 龙游县| 富平县| 福安市| 丹凤县| 宝山区| 水城县| 彩票| 石首市| 兴安盟| 广宁县| 饶阳县| 鱼台县| 融水| 黑河市| 祁门县| 桂阳县| 双桥区| 广汉市| 河池市| 汝城县| 金门县| 牙克石市| 德安县| 玉环县| 濉溪县| 博客| 拉孜县| 辰溪县| 东至县|