diff --git a/src/onebot11/cqcode.ts b/src/onebot11/cqcode.ts
index bfec38e..d343925 100644
--- a/src/onebot11/cqcode.ts
+++ b/src/onebot11/cqcode.ts
@@ -46,15 +46,22 @@ export function decodeCQCode(source: string): OB11MessageData[] {
 
 
 export function encodeCQCode(data: OB11MessageData) {
-    const CQCodeEscape = (text: string) => {
-        return text.replace(/\[/g, '[')
+    const CQCodeEscapeText = (text: string) => {
+        return text.replace(/\&/g, '&')
+            .replace(/\[/g, '[')
+            .replace(/\]/g, ']')
+            
+    };
+
+    const CQCodeEscape = (text: string) => {
+        return text.replace(/\&/g, '&')
+            .replace(/\[/g, '[')
             .replace(/\]/g, ']')
-            .replace(/\&/g, '&')
             .replace(/,/g, ',');
     };
 
     if (data.type === 'text') {
-        return CQCodeEscape(data.data.text);
+        return CQCodeEscapeText(data.data.text);
     }
 
     let result = '[CQ:' + data.type;
@@ -68,4 +75,4 @@ export function encodeCQCode(data: OB11MessageData) {
 
 // const result = parseCQCode("[CQ:at,qq=114514]早上好啊[CQ:image,file=http://baidu.com/1.jpg,type=show,id=40004]")
 // const result = parseCQCode("好好好")
-// console.log(JSON.stringify(result))
\ No newline at end of file
+// console.log(JSON.stringify(result))