首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

微信公眾號開發教程(九):QQ表情發送接收全攻略

     編輯:PHP 相關知識

QQ 表情極大豐富了聊天趣味。本文詳細介紹微信公眾平台開發模式下 QQ 表情的代碼對照表、發送方式、接收識別邏輯,並提供正則識別工具方法。

核心認知:QQ表情本質是文本消息

用戶發送 QQ 表情時,MsgType = text。表情以特定代碼形式傳輸,客戶端渲染為圖片。掌握這點,後續處理即變得清晰。

QQ 表情代碼對照表(105個)

每個表情對應兩種代碼:

  • 文字代碼:如 [呲牙]、/難過(中括號或斜杠開頭)
  • 符號代碼:如 /::D、/::((斜杠雙冒號開頭)

QQ表情代碼表1

QQ表情代碼表2

QQ表情代碼表3

QQ表情代碼表4

用戶發送 QQ 表情

點擊輸入框笑臉按鈕 → 選擇「QQ表情」 → 輸入框顯示文字代碼(如 [呲牙])。熟練者可直接輸入代碼發送。

輸入框顯示代碼

三種代碼等效

公眾號回復 QQ 表情

TextMessage textMessage = new TextMessage();
textMessage.setContent("[難過] /難過 /::("); // 三種代碼均可
respMessage = MessageUtil.textMessageToXml(textMessage);

後台識別用戶發送的 QQ 表情

實測發現:後台接收到的是表情的符號代碼(如 /::D)。封裝正則判斷方法:

public static boolean isQqFace(String content) {
    String qqfaceRegex = "/::\\)|/::~|/::B|/::\\||/:8-\\)|/::<|/::$|/::X|/::Z|/::'\\||/::-\\||/::@|/::P|/::D|/::O|/::\\(|/::\\+|/:--b|/::Q|/::T|/::d|/::g|/::!|/::L|/::>|/::,@|/::-S|/:\\?|/::8|/::!!!|/:xx|/:bye|/:wipe|/:dig|/:handclap|/:&-\\(|/:B-\\)|/:<@|/:@>|/::-O|/:>-\\||/:P-\\(|/::'\\||/:X-\\)|/::\\*|/:@x|/:8\\*|/:pd|/:<W>|/:beer|/:basketb|/:oo|/:coffee|/:eat|/:pig|/:rose|/:fade|/:showlove|/:heart|/:break|/:cake|/:li|/:bome|/:kn|/:footb|/:ladybug|/:shit|/:moon|/:sun|/:gift|/:hug|/:strong|/:weak|/:share|/:v|/:@\\)|/:jj|/:@@|/:bad|/:lvu|/:no|/:ok|/:love|/:<L>|/:jump|/:shake|/:<O>|/:circle|/:kotow|/:turn|/:skip|/:oY|/:#-0|/:hiphot|/:kiss|/:<&|/:&>";
    return Pattern.compile(qqfaceRegex).matcher(content).matches();
}

應用示例:原樣回復表情

if (XiaoqUtil.isQqFace(content)) {
    textMessage.setContent(content); // 用戶發什麼,回什麼
    respMessage = MessageUtil.textMessageToXml(textMessage);
}

掌握 QQ 表情代碼與識別邏輯,讓互動更生動。下一篇將解析消息創建時間 CreateTime 的轉換技巧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved