亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

emoji表情與unicode編碼互轉(zhuǎn)的實(shí)現(xiàn)(JS,JAVA,C#)

瀏覽:16日期:2022-08-18 17:47:37

前幾天剛好有需求要把emoji對(duì)應(yīng)的Unicode編碼轉(zhuǎn)換成文字,比如1f601對(duì)應(yīng)的這個(gè)笑臉😁,但沒(méi)有找到C#的把1f601轉(zhuǎn)換成文字的方法,用Encoding.Unicode怎么轉(zhuǎn)換都不對(duì),最后直接復(fù)制emoji字符,Visual Studio里面竟然直接顯示出來(lái)了,那就直接用字符吧,都不用轉(zhuǎn)換了,然后不了了之了。

今天搞Markdown編輯器,由于前面GFM的原因,又對(duì)編碼進(jìn)行測(cè)試,沒(méi)查到什么靠譜資料,到時(shí)找到很多emoji和Unicode對(duì)照表,https://apps.timwhitlock.info/emoji/tables/unicode拿一個(gè)笑臉https://apps.timwhitlock.info/unicode/inspect/hex/1F601開(kāi)刀~

1.表情字符轉(zhuǎn)編碼

【C#】

Encoding.UTF32.GetBytes('😁') -> ['1', 'f6', '1', '0']

【js】

'😁'.codePointAt(0).toString(16) -> 1f601

【java】

byte[] bytes = '😀'.getBytes('utf-32'); System.out.println(getBytesCode(bytes)); private static String getBytesCode(byte[] bytes) { String code = ''; for (byte b : bytes) { code += 'x' + Integer.toHexString(b & 0xff); } return code; }

UTF-32結(jié)果一致

【C#】

Encoding.UTF8.GetBytes('😁') -> ['f0', '9f', '98', '81']

【js】

encodeURIComponent('😁') -> %F0%9F%98%81

UTF-8結(jié)果一致

2.編碼轉(zhuǎn)表情字符

【js】

String.fromCodePoint(’0x1f601’) utf-32

【java】

String emojiName = '1f601'; //其實(shí)4個(gè)字節(jié) int emojiCode = Integer.valueOf(emojiName, 16); byte[] emojiBytes = int2bytes(emojiCode); String emojiChar = new String(emojiBytes, 'utf-32'); System.out.println(emojiChar); public static byte[] int2bytes(int num){ byte[] result = new byte[4]; result[0] = (byte)((num >>> 24) & 0xff);//說(shuō)明一 result[1] = (byte)((num >>> 16)& 0xff ); result[2] = (byte)((num >>> 8) & 0xff ); result[3] = (byte)((num >>> 0) & 0xff ); return result; }c# 漢字和Unicode編碼互相轉(zhuǎn)換實(shí)例

/// <summary>/// <summary>/// 字符串轉(zhuǎn)Unicode/// </summary>/// <param name='source'>源字符串</param>/// <returns>Unicode編碼后的字符串</returns>public static string String2Unicode(string source){ byte[] bytes = Encoding.Unicode.GetBytes(source); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < bytes.Length; i += 2) { stringBuilder.AppendFormat('u{0}{1}', bytes[i + 1].ToString('x').PadLeft(2, ’0’), bytes[i].ToString('x').PadLeft(2, ’0’)); } return stringBuilder.ToString();} /// <summary>/// Unicode轉(zhuǎn)字符串/// </summary>/// <param name='source'>經(jīng)過(guò)Unicode編碼的字符串</param>/// <returns>正常字符串</returns>public static string Unicode2String(string source){ return new Regex(@'u([0-9A-F]{4})', RegexOptions.IgnoreCase | RegexOptions.Compiled).Replace( source, x => string.Empty + Convert.ToChar(Convert.ToUInt16(x.Result('$1'), 16)));}參考地址:

https://www.jianshu.com/p/8a416537deb3

https://blog.csdn.net/a19881029/article/details/13511729

https://apps.timwhitlock.info/emoji/tables/unicode

到此這篇關(guān)于emoji表情與unicode編碼互轉(zhuǎn)的實(shí)現(xiàn)(JS,JAVA,C#)的文章就介紹到這了,更多相關(guān)emoji表情與unicode編碼互轉(zhuǎn)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 北岛玲日韩精品一区二区三区 | 中文字幕在线播放不卡 | 欧美亚洲综合在线 | 99久久婷婷国产综合精品hsex | 精品一区二区三区在线观看 | 成年片美女福利视频在线 | 精品哟哟哟国产在线不卡 | 91免费精品国偷自产在线在线 | 免费国产好深啊好涨好硬视频 | 青青操免费在线观看 | 欧乱色国产精品兔费视频 | 精品国产免费观看久久久 | 亚洲色图 p| 欧美精品国产日韩综合在线 | 国产在线一区二区杨幂 | 99这里只有精品在线 | 国内自拍视频在线观看 | 国产一二三四五路线 | 国产一久久香蕉国产线看观看 | 国产麻豆入在线观看 | 日本一线a视频免费观看 | 麻豆日韩区久久综合 | 老司机观看精品一区二区 | 国产毛片久久久久久国产毛片 | 亚洲欧美黄色片 | 成年女人毛片免费视频永久vip | 91短视频版在线观看免费 | 一级做a爱过程免费视频超级 | 1024cc香蕉在线观看免费 | 在线观看日韩www视频免费 | 成 人 免费 黄 色 视频 | 国产区综合| 亚洲 自拍 欧美 另类小说 | 1024cao社区榴地址一地址二 | 国产萝控精品福利视频免费观看 | 18岁免费网站 | 亚洲成熟xxxx | 加勒比一道本综合 | 色成人亚洲 | 麻豆视频在线观看 | 日日摸夜夜添夜夜添欧美毛片 |