From bb49909ae1d9f0621792c88e53589b52dd29f8f9 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 12 一月 2026 16:51:32 +0800
Subject: [PATCH] 0312 自定义url编码接口

---
 Main/Utility/OperationLogCollect.cs |   43 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 42 insertions(+), 1 deletions(-)

diff --git a/Main/Utility/OperationLogCollect.cs b/Main/Utility/OperationLogCollect.cs
index b13bddf..58acbe5 100644
--- a/Main/Utility/OperationLogCollect.cs
+++ b/Main/Utility/OperationLogCollect.cs
@@ -209,11 +209,52 @@
         tables["ToRoleID"] = UIHelper.ServerStringTrim(toPlayer);
         tables["Level"] = PlayerDatas.Instance.baseData.LV.ToString();
         tables["VIPLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
-        tables["Content"] = System.Uri.EscapeDataString(UIHelper.TrimContentToServer(content));
+        tables["Content"] = UrlEncode(UIHelper.TrimContentToServer(content));
         tables["DeviceFlag"] = SDKUtils.Instance.Device == null ? string.Empty : SDKUtils.Instance.Device.uniqueID;
         var chatStr = StringUtility.Concat(chatReportUrl, HttpRequest.HashtablaToString(tables));
         HttpRequest.Instance.RequestHttpGet(chatStr, HttpRequest.defaultHttpContentType);
 #endif
     }
 
+
+    /// <summary>
+    /// 鑷畾涔� URL 缂栫爜鍑芥暟锛堥槻姝� AOT 瑁佸壀锛�
+    /// </summary>
+    public string UrlEncode(string value)
+    {
+        if (string.IsNullOrEmpty(value))
+            return string.Empty;
+        
+        System.Text.StringBuilder result = new System.Text.StringBuilder();
+        
+        foreach (char c in value)
+        {
+            // 涓嶉渶瑕佺紪鐮佺殑瀛楃
+            if ((c >= 'a' && c <= 'z') || 
+                (c >= 'A' && c <= 'Z') || 
+                (c >= '0' && c <= '9') ||
+                c == '-' || c == '_' || c == '.' || c == '~')
+            {
+                result.Append(c);
+            }
+            else if (c == ' ')
+            {
+                // 绌烘牸鏇挎崲涓� +
+                result.Append('+');
+            }
+            else
+            {
+                // 鍏朵粬瀛楃缂栫爜涓� %XX 鏍煎紡
+                byte[] bytes = System.Text.Encoding.UTF8.GetBytes(c.ToString());
+                foreach (byte b in bytes)
+                {
+                    result.Append('%');
+                    result.Append(b.ToString("X2"));
+                }
+            }
+        }
+        
+        return result.ToString();
+    }
+
 }

--
Gitblit v1.8.0