<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### PHP ``` $emoji = '表情??'; $str = emojiEncode($emoji); echo $str; // 表情\ud83e\udd23 echo '<br />'; $str = '表情\ud83e\udd23'; $emoji = emojiDecode($str); echo $emoji; /** * 轉碼 */ function emojiEncode($str) { if (!is_string($str)) { return $str; } if (!$str || $str == 'undefined') { return ''; } $text = str_replace('\\', '/', $str); $text = json_encode($text); //暴露出unicode $text = preg_replace_callback("/(\\\u[ed][0-9a-f]{3})/i", function ($str) { return addslashes($str[0]); }, $text); //將emoji的unicode留下,其他不動,這里的正則比原答案增加了d,因為我發現我很多emoji實際上是\ud開頭的,反而暫時沒發現有\ue開頭。 return json_decode($text); } /** * 解碼 */ function emojiDecode($str) { if (empty($str)) { return ''; } $str = str_replace('\\', '/', $str); $str = preg_replace_callback('/(\/u[ed][0-9a-f]{3})/i', function ($value) { return str_replace('/', '\\', $value[0]); }, $str); $text = json_encode($str); //暴露出unicode $text = preg_replace_callback('/\\\\\\\\/i', function () { return '\\'; }, $text); //將兩條斜杠變成一條,其他不動 $rt = json_decode($text); if ($rt) { return $rt; } return $str; } ``` 輸出結果: ![](https://img.kancloud.cn/35/83/3583eb58568c9ece0140f66c334716c2_181x69.png) ### Go ``` package main import ( "fmt" "os" "regexp" "strconv" "strings" "unicode/utf16" ) // EmojiEncode Emoji表情轉碼 func EmojiEncode(s string) string { ret := "" rs := []rune(s) for i := 0; i < len(rs); i++ { if len(string(rs[i])) == 4 { r1, r2 := utf16.EncodeRune(rs[i]) t1 := "\\u" + fmt.Sprintf("%x", r1) t2 := "\\u" + fmt.Sprintf("%x", r2) ret += t1 + t2 } else { ret += string(rs[i]) } } return ret } // EmojiDecode Emoji表情解碼 func EmojiDecode(s string) string { re := regexp.MustCompile("\\\\u[ed][0-9a-f]{3}\\\\u[ed][0-9a-f]{3}") result := re.FindAllString(s, -1) if len(result) > 0 { for k := range result { tmp := result[k] result[k] = strings.Replace(result[k], "\\u", "0x", -1) cov1, _ := strconv.ParseUint(result[k][:6], 0, 32) cov2, _ := strconv.ParseUint(result[k][6:], 0, 32) covResult := fmt.Sprintf("%c", utf16.DecodeRune(rune(cov1), rune(cov2))) s = strings.Replace(s, tmp, covResult, -1) } } return s } func main() { /* // emoji表情轉碼 emoji := os.Args[1] str := EmojiEncode(emoji) fmt.Println(str) */ // 字符串解碼 str := os.Args[1] emoji := EmojiDecode(str) fmt.Println(emoji) } ``` 輸出結果: ![](https://img.kancloud.cn/f5/1f/f51f80f504d7d75eb1acfdac26dd6321_365x86.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看