添加将16进制字符串转UTF字符串函数 1006/3
authorluozheng <1732036298@qq.com>
Mon, 23 Sep 2024 12:36:18 +0000 (20:36 +0800)
committerluozheng <1732036298@qq.com>
Mon, 23 Sep 2024 12:36:18 +0000 (20:36 +0800)
code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersPresenter.h
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersPresenter.cpp

index 42d8c5a..0d7035b 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-08-05 15:20:03\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-09-23 16:17:55\r
+ * @LastEditTime: 2024-09-23 20:24:49\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersPresenter.h\r
  */\r
 \r
@@ -84,6 +84,7 @@ public:
     List<PlayerCaseInfo>& GetCase();\r
     char *GetCase(int16_t index);\r
     void AddCase(PlayerCaseInfo testCaseInfo);\r
+    std::string hex_to_string(const std::string &hex_str);\r
 \r
 private:\r
     List<PlayerCaseInfo> *playersCaseList_{nullptr};\r
index 198f934..55b4c5e 100644 (file)
@@ -567,6 +567,23 @@ int PlayersListGroup::GetAllFiles(std::list<PlayerCaseInfo> &playersList)
     return OHOS_SUCCESS;\r
 }\r
 \r
+//将16进制字符串转UTF-8字符串\r
+std::string PlayersListGroup::hex_to_string(const std::string &hex_str) \r
+{  \r
+    size_t length = hex_str.length();  \r
+    std::string result;  \r
+    result.reserve(length / 2); // 预分配内存以容纳结果字符串,避免在 push_back 时频繁重新分配  \r
+\r
+    for (size_t i = 0; i < length / 2; i++) {  \r
+        // 从十六进制字符串中提取每两个字符  \r
+        std::string byteString = hex_str.substr(i * 2, 2); // 获取两个字符的子串  \r
+\r
+        // 将十六进制字符串转换为字符  \r
+        result.push_back(static_cast<char>(strtol(byteString.c_str(), nullptr, 16)));  \r
+    }  \r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hex_to_string:%s",result.c_str());\r
+    return result; // 返回结果字符串  \r
+}  \r
 ButtonOnClickListener::~ButtonOnClickListener()\r
 {\r
 }\r