色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

emoji表情與unicode編碼互轉的實現(JS,JAVA,C#)

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

前幾天剛好有需求要把emoji對應的Unicode編碼轉換成文字,比如1f601對應的這個笑臉😁,但沒有找到C#的把1f601轉換成文字的方法,用Encoding.Unicode怎么轉換都不對,最后直接復制emoji字符,Visual Studio里面竟然直接顯示出來了,那就直接用字符吧,都不用轉換了,然后不了了之了。

今天搞Markdown編輯器,由于前面GFM的原因,又對編碼進行測試,沒查到什么靠譜資料,到時找到很多emoji和Unicode對照表,https://apps.timwhitlock.info/emoji/tables/unicode拿一個笑臉https://apps.timwhitlock.info/unicode/inspect/hex/1F601開刀~

1.表情字符轉編碼

【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結果一致

【C#】

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

【js】

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

UTF-8結果一致

2.編碼轉表情字符

【js】

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

【java】

String emojiName = '1f601'; //其實4個字節 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);//說明一 result[1] = (byte)((num >>> 16)& 0xff ); result[2] = (byte)((num >>> 8) & 0xff ); result[3] = (byte)((num >>> 0) & 0xff ); return result; }c# 漢字和Unicode編碼互相轉換實例

/// <summary>/// <summary>/// 字符串轉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轉字符串/// </summary>/// <param name='source'>經過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

到此這篇關于emoji表情與unicode編碼互轉的實現(JS,JAVA,C#)的文章就介紹到這了,更多相關emoji表情與unicode編碼互轉內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 久久免费视频网站 | 人与拘一级a毛片 | 国产人成午夜免费噼啪视频 | 国产免费一级精品视频 | 91久久精品青青草原伊人 | 日韩中文字幕精品 | 国产一区私人高清影院 | 美女很黄很黄是免费的·无遮挡网站 | 久久99精品久久久久久青青91 | 国产成人黄色 | 欧美另类videosgrstv变态 欧美另类高清xxxxx | 国产一区亚洲一区 | 女人张腿让男桶免费视频网站 | av毛片在线看 | 久久国产精品-国产精品 | 亚洲天堂在线视频观看 | 91欧美在线视频 | 国产成人18黄网站免费 | 最新国产精品自拍 | 日韩一级特黄毛片在线看 | 日本高清专区一区二无线 | 欧美中文字幕一区二区三区 | 精品国产免费人成高清 | 在线观看黄网视频免费播放 | 国产玖玖玖精品视频 | 美女张开腿让人桶 | 久久99国产精品久久99无号码 | 亚洲欧美一区二区三区久久 | 精品自拍视频 | 黄色a三级免费看 | 亚洲经典在线观看 | 欧美日韩在线永久免费播放 | 久久综合精品国产一区二区三区 | 亚洲免费人成在线视频观看 | 天堂色网站 | 一个人看的免费高清视频日本 | 精品免费久久久久久成人影院 | 久操视频免费在线观看 | 日本手机在线视频 | 国产精品反差婊在线观看 | 国产第一区二区三区在线观看 |