彻底解决VSCode+CMake+Windows中文乱码:构建全链路UTF-8开发环境
1. 项目概述VSCode与CMake的中文乱码困局作为一名长期在Windows环境下进行C/C开发的工程师我几乎每天都要和VSCode、CMake以及终端打交道。最近在指导团队新人配置环境时一个“古老”但高频的问题再次浮出水面在VSCode中运行CMake构建项目无论是终端输出的构建信息还是程序运行时打印的中文都变成了一堆无法辨认的“天书”乱码。这看似是个小问题却直接影响开发体验和调试效率。新人可能会花上半天甚至一天的时间在网上搜索各种零散的解决方案尝试修改各种设置结果往往治标不治本或者解决了终端乱码却引发了输出面板乱码问题此起彼伏。这个问题的核心本质上是一个“编码冲突三角债”Windows系统默认的编码通常是GBK、VSCode及其集成终端如PowerShell、CMD的编码设置、CMake生成器与编译器如MSVC、GCC的编码处理三者如果没有统一乱码就会像幽灵一样出现。尤其是在跨平台项目Windows开发但代码需在Linux部署中统一使用UTF-8编码是行业最佳实践但在Windows的“历史包袱”下实现这一点需要一些精细的配置。本文将彻底拆解这个乱码问题的根源并提供一套从系统、VSCode到CMake的完整、可复现的解决方案让你一劳永逸地告别中文乱码。2. 乱码根源深度解析编码世界的“巴别塔”要解决问题必须先理解问题。中文乱码的本质是信息的编码与解码过程不匹配。我们可以把编码看作一种“密码本”写入编码和读取解码必须使用同一本“密码本”否则信息就会错乱。2.1 核心角色与它们的默认“密码本”在VSCodeCMakeWindows这个场景下主要涉及以下几个角色及其默认编码倾向Windows操作系统特别是CMD和旧版控制台其传统默认编码是GBK在中国大陆地区或Big5在繁体中文地区。GBK是微软早期为了兼容大量遗留系统和软件而采用的编码。当你直接在CMD中输出中文时它期望收到GBK编码的字节流。VSCode 集成终端VSCode的终端实际上是一个“终端模拟器”它默认会继承系统终端的编码设置。如果你在VSCode中打开的是“CMD”或“PowerShell”终端那么它的初始编码很可能就是GBK。关键在于VSCode终端本身支持UTF-8但它需要被正确配置和告知。CMake 生成器与构建过程CMake本身不直接处理源代码的编码。它的角色是生成构建文件如Makefile或Visual Studio.sln。乱码通常出现在两个阶段配置与生成阶段CMake在终端中打印消息如-- Configuring done,-- Generating done。如果CMake认为终端是UTF-8例如通过环境变量CMAKE_UTF8_OUPUTON强制开启而实际终端是GBK这些消息中的中文路径或注释就会乱码。编译与链接阶段CMake调用编译器如cl.exeMSVC 或g.exeMinGW。编译器如何理解源文件中的中文字符串常量取决于源文件的编码和编译器开关。现代编译器通常支持通过编译参数如GCC的-fexec-charset、-finput-charsetMSVC的/utf-8来指定编码。源代码文件这是所有问题的起点。你的.cpp、.h文件本身是以什么编码保存的UTF-8 with BOMUTF-8 without BOM还是GBKVSCode编辑器右下角可以查看和更改当前文件的编码。最终的可执行程序程序运行时printf或std::cout输出的字符串在内存中是以何种编码存储的这又取决于编译器的设置和源代码的编码。当这五个环节的“密码本”不一致时乱码就产生了。最常见的冲突链是源代码保存为UTF-8 - 编译器按UTF-8理解并编译 - 生成的可执行程序输出UTF-8字节流 - Windows CMD终端按GBK解码 - 显示为乱码。反之如果源代码是GBK但终端或VSCode按UTF-8解码也会乱码。2.2 乱码的典型场景与表现根据网络上的高频反馈乱码主要出现在以下几个地方理解这些现象有助于快速定位问题环节CMake 输出面板乱码在VSCode的CMake插件输出面板或者“终端”中运行cmake -B build命令时输出的信息中的中文尤其是包含中文路径的项目显示为乱码。这通常是终端编码与CMake输出编码不匹配。构建/编译输出乱码在构建过程中编译器警告、错误信息中如果包含中文字符可能来自代码注释或路径显示为乱码。这涉及编译器输出编码与终端编码。程序运行时输出乱码项目构建成功运行生成的可执行文件程序中printf(你好世界\n);这样的中文字符串输出为乱码。这是最经典的程序输出编码与终端解码编码不匹配。VSCode 问题面板或终端标题乱码有时乱码甚至会出现在非内容区域这可能是更深层的系统区域设置或VSCode内部通信编码问题。注意在开始任何配置之前请先确认你的源代码文件编码。强烈建议将所有源代码文件统一保存为UTF-8 without BOM。这是跨平台项目的标准也是现代工具链最友好的编码格式。你可以在VSCode中打开文件查看右下角的编码状态并点击选择“通过编码保存”来更改。3. 终极解决方案构建全链路UTF-8环境我们的目标是打造一个从源码到终端显示全程使用UTF-8编码的“纯净”开发环境。这样不仅能解决中文乱码也为国际化i18n和跨平台协作打下基础。3.1 第一步配置Windows系统与终端支持UTF-8可选但推荐这是治本之策但会影响到系统全局。Windows 10版本1903及以上和Windows 11提供了测试版的系统级UTF-8支持。打开“设置” - “时间和语言” - “语言和区域”。点击“管理语言设置”或“相关设置”下的“管理语言设置”。在弹出的“区域”设置窗口中切换到“管理”选项卡。点击“更改系统区域设置...”按钮。勾选“Beta版使用Unicode UTF-8提供全球语言支持”。点击“确定”并根据提示重启计算机。警告启用此功能后某些非常古老的、完全不支持UTF-8的软件可能会出现显示问题。但对于现代开发环境VSCode, CMake, Python, Git等这通常是安全的且能一劳永逸地解决大量编码问题。如果你不想修改系统设置可以跳过此步专注于后续的VSCode和CMake配置。3.2 第二步强制VSCode终端使用UTF-8编码即使不修改系统设置我们也可以让VSCode的内部终端强制使用UTF-8。打开VSCode设置使用快捷键Ctrl ,。搜索终端编码设置在搜索框中输入terminal.integrated.defaultProfile.windows。将其值修改为你希望默认使用的终端例如PowerShell推荐或Command Prompt。PowerShell Corepwsh对UTF-8支持更好。配置终端环境变量这是最关键的一步。我们需要在终端启动时注入环境变量强制其使用UTF-8编码。在设置中搜索terminal.integrated.env.windows。点击“在settings.json中编辑”。在打开的settings.json文件中添加或修改如下配置{ terminal.integrated.env.windows: { PYTHONIOENCODING: utf-8, PYTHONUTF8: 1, CMAKEGENERATOR: Ninja, // 可选Ninja生成器的输出通常更干净 CMAKECXXCOMPILER: cl.exe, // 根据你的编译器调整 CMAKECCOMPILER: cl.exe, // 强制设置代码页为UTF-8 (65001) CHCP: 65001 }, // 显式设置终端编码为utf8 terminal.integrated.defaultProfile.windows: PowerShell, // 对于PowerShell还可以配置启动命令 [powershell]: { terminal.integrated.shellArgs.windows: [ -NoExit, -Command, chcp 65001 | Out-Null // 启动时执行chcp 65001切换代码页 ] } }关键解释“CHCP”: “65001”CHCP是Windows控制台命令用于更改活动代码页。65001代表UTF-8。通过环境变量设置旨在影响终端行为。chcp 65001在PowerShell启动参数中直接执行此命令是确保终端会话初始代码页就是UTF-8的更可靠方法。PYTHONIOENCODING和PYTHONUTF8如果你在项目中同时使用Python脚本这些环境变量能确保Python的输入输出也是UTF-8。重启VSCode终端修改设置后完全关闭VSCode中所有终端标签页然后重新打开一个新的终端。在PowerShell中输入chcp命令确认输出为“活动代码页: 65001”。3.3 第三步配置CMake以UTF-8模式运行现在终端已经是UTF-8环境了我们需要告诉CMake也使用UTF-8。在CMake命令行中传递参数最直接的方式是在配置CMake时指定。cmake -B build -DCMAKE_UTF8_OUTPUTON -DCMAKE_CXX_FLAGS/utf-8 -DCMAKE_C_FLAGS/utf-8-DCMAKE_UTF8_OUTPUTON这个变量会尝试让CMake在生成构建系统时确保输出消息的编码适合UTF-8终端。注意这个变量并非所有生成器都完全支持但对Ninja和Makefile生成器效果较好。-DCMAKE_CXX_FLAGS“/utf-8”和-DCMAKE_C_FLAGS“/utf-8”这是针对MSVC编译器的关键选项。/utf-8选项告诉MSVC编译器源代码和执行字符集都使用UTF-8。这是解决MSVC编译程序运行时输出乱码的最有效手段。在CMakeLists.txt中永久设置推荐将编码设置写入项目配置一劳永逸。 在你的项目根目录的CMakeLists.txt文件中在project()命令之后添加以下语句cmake_minimum_required(VERSION 3.10) project(MyProject) # 强制CMake以UTF-8输出如果支持 set(CMAKE_UTF8_OUTPUT ON) # 针对MSVC编译器设置/utf-8标志 if(MSVC) add_compile_options($$C_COMPILER_ID:MSVC:/utf-8) add_compile_options($$CXX_COMPILER_ID:MSVC:/utf-8) # 或者更简单的写法新版本CMake # add_compile_options(/utf-8) endif() # 针对GCC/MinGW编译器设置输入输出字符集为UTF-8 if(CMAKE_CXX_COMPILER_ID MATCHES GNU|Clang) add_compile_options(-fexec-charsetUTF-8) add_compile_options(-finput-charsetUTF-8) endif()这段代码的作用if(MSVC)块仅当使用Microsoft Visual C编译器时为所有C和C文件添加/utf-8编译选项。if(CMAKE_CXX_COMPILER_ID MATCHES “GNU|Clang”)块当使用GCC或Clang包括MinGW时添加-fexec-charsetUTF-8指定执行字符集为UTF-8和-finput-charsetUTF-8指定源文件输入字符集为UTF-8选项。通常源文件是UTF-8时-finput-charsetUTF-8可能不是必须的但显式声明更安全。3.4 第四步配置VSCode的CMake插件与任务如果你使用VSCode的CMake Tools插件这是管理CMake项目的标准方式还需要确保插件在调用CMake时也传递了正确的参数。配置CMake Tools插件设置打开VSCode设置 (Ctrl ,)。搜索cmake.configureArgs。点击“添加项”然后添加-DCMAKE_UTF8_OUTPUTON。如果你主要使用MSVC还可以添加-DCMAKE_CXX_FLAGS“/utf-8”和-DCMAKE_C_FLAGS“/utf-8”。不过更推荐在CMakeLists.txt中设置这样对所有构建方式命令行、插件、其他IDE都生效。配置构建任务tasks.json如果你使用自定义的构建任务需要在tasks.json中确保环境。{ “version”: “2.0.0”, “tasks”: [ { “label”: “cmake build”, “type”: “shell”, “command”: “cmake --build ./build --config Release”, “group”: “build”, “problemMatcher”: [], “options”: { “env”: { // 再次确保终端环境 “CHCP”: “65001” } } } ] }4. 分场景排查与实战调试技巧即使按照上述步骤配置在某些复杂场景下可能还会遇到问题。下面是一个系统的排查流程和实战技巧。4.1 诊断流程五步定位法当乱码出现时不要盲目尝试按以下步骤诊断确认终端当前编码在VSCode终端中立即输入chcpWindows或echo $LANGLinux/WSL。确认是否是65001(UTF-8) 或zh_CN.UTF-8。确认源代码文件编码在VSCode中打开出问题的源文件查看右下角状态栏显示的编码。确保是UTF-8。确认编译器标志检查你的构建输出。对于MSVC在详细的构建日志中搜索/utf-8标志是否被应用。对于GCC检查是否有-fexec-charsetUTF-8。编写一个最小测试程序在你的项目中创建一个新的测试文件内容仅为#include iostream #include locale int main() { #ifdef _WIN32 system(“chcp”); // 打印当前Windows控制台代码页 #endif std::cout “直接输出中文” std::endl; // 尝试设置C locale std::locale::global(std::locale(“”)); // 使用系统默认locale std::cout.imbue(std::locale()); std::cout “设置locale后输出中文” std::endl; return 0; }编译并运行它。观察system(“chcp”)输出的代码页。两行中文的输出情况。这能帮你区分是程序输出问题还是终端问题。检查CMake生成器有时使用不同的CMake生成器行为不同。尝试使用Ninja生成器它通常比Visual Studio 16 2019这类生成器对UTF-8的支持更一致、输出更干净。cmake -B build -G “Ninja” -DCMAKE_BUILD_TYPERelease4.2 针对特定编译器的特殊处理MSVC (cl.exe)/utf-8选项是王道。确保它被正确添加到编译命令中。如果项目使用了预编译头stdafx.h需要确保预编译头文件本身也是UTF-8编码并且在创建预编译头时也包含了/utf-8选项。对于非常旧版本的MSVC如VS2015早期版本可能不完全支持/utf-8考虑升级工具集。MinGW-w64 / GCC-fexec-charsetUTF-8和-finput-charsetUTF-8必须同时设置特别是当源代码是UTF-8而目标Windows控制台期望其他编码时。MinGW的一个常见陷阱是它链接的C运行时库可能默认不是UTF-8模式。除了编译器标志还可以尝试在程序启动时调用_setmode(_fileno(stdout), _O_U8TEXT);Windows API来设置标准输出的模式但这属于代码层解决方案。Clang/LLVM on Windows行为与GCC类似同样使用-fexec-charsetUTF-8标志。在使用Clang-CL模拟MSVC接口时可以尝试使用-Xclang -fexec-charsetUTF-8来传递标志。4.3 VSCode特定问题排查输出面板 vs 集成终端VSCode的“输出”面板Output和“终端”面板Terminal可能使用不同的编码处理逻辑。如果只有输出面板乱码可以尝试在设置中搜索[cmake]或对应插件的输出通道设置但更根本的解决方案是确保整个系统流向是UTF-8。插件冲突某些其他插件可能会修改终端或环境设置。尝试在禁用所有其他插件的情况下只启用CMake和C插件看问题是否消失。工作区设置覆盖检查项目根目录下的.vscode/settings.json文件看是否有覆盖全局终端或环境变量的设置。5. 高级话题与长效维护建议5.1 跨平台项目的编码规范对于需要在Windows、Linux、macOS上协同开发的项目建立统一的编码规范至关重要强制要求所有源代码文件使用UTF-8 without BOM编码。可以在项目根目录放置一个.editorconfig文件来统一编辑器行为root true [*] charset utf-8 end_of_line lf insert_final_newline true indent_style space indent_size 4并推荐团队成员在VSCode中安装EditorConfig插件。在CMakeLists.txt中显式声明编码要求。将第三节的编译器标志配置作为项目标准的一部分。在项目README或贡献指南中明确说明。要求所有贡献者在克隆项目后首先确认其本地Git配置不会转换编码git config --global core.autocrlf input # 对于Windows用户推荐 git config --global core.quotepath off # 防止git status显示中文路径为八进制5.2 当遇到第三方库或遗留代码时有时你不得不使用一个内部编码是GBK的第三方库或遗留代码模块。隔离策略将该模块单独放在一个子目录中为其编写独立的、使用GBK编码编译的CMakeLists.txt。在主项目中通过接口例如纯ASCII的C接口或经过UTF-8转码的字符串接口与之交互。转码桥梁在调用该库的边界处编写转码函数。例如在Windows下可以使用WideCharToMultiByte和MultiByteToWideChar在UTF-8和GBK之间进行转换。但这会增加复杂性和运行时开销。编译选项隔离使用CMake的target_compile_options命令只对特定的遗留代码目标设置不同的编码选项而不是全局设置。5.3 持续集成CI环境中的配置在GitHub Actions、GitLab CI等环境中运行环境通常是Linux默认就是UTF-8问题较少。但为了确保绝对一致可以在CI的配置文件中显式设置环境变量# GitHub Actions 示例 jobs: build: runs-on: ubuntu-latest env: LANG: C.UTF-8 LC_ALL: C.UTF-8 steps: - uses: actions/checkoutv3 - run: cmake -B build -DCMAKE_UTF8_OUTPUTON对于Windows CI runner如windows-latest则需要像本地一样在PowerShell步骤开始时执行chcp 65001。解决VSCode中CMake和终端的中文乱码问题是一个典型的“系统-工具-项目”三层配置问题。核心思路是统一编码首选UTF-8。从配置Windows系统区域可选但彻底到锁定VSCode终端环境再到在CMake项目文件中硬性规定编译器行为层层递进构建一个编码一致性的“护城河”。这个过程虽然繁琐但一旦配置完成就能为整个团队提供一个清爽、无乱码的开发基础环境节省大量不必要的调试时间。记住关键检查点终端chcp、源码编码、编译器标志。当遇到怪异问题时用最小测试程序进行隔离诊断总能找到那条不匹配的编码链路。

相关新闻

VSCode Python开发环境配置与高效工作流指南

VSCode Python开发环境配置与高效工作流指南

1. 从零到一:为什么选择VSCode作为你的Python开发起点如果你刚开始接触编程,或者从其他语言转向Python,面对的第一个现实问题往往是:我该用什么工具来写代码?是直接用记事本,还是选择功能强大的集成开发环境…

2026/8/24 10:08:07 阅读更多 →
毕业生必备:AI求职工具提升简历通过率

毕业生必备:AI求职工具提升简历通过率

1. 项目概述:为什么毕业生需要关注降AI率工具?2026届毕业生即将面临一个全新的就业环境——AI技术已经深度渗透到各行各业。作为过来人,我深切理解应届生在求职过程中最担心的就是简历被AI系统自动过滤掉。去年帮学弟修改简历时,我…

2026/8/24 10:08:36 阅读更多 →
Golang并发编程:sync.Map原理与面试精讲

Golang并发编程:sync.Map原理与面试精讲

1. 为什么需要关注sync.Map面试题?在Golang的并发编程领域,sync.Map绝对是一个高频出现的考点。作为标准库中提供的并发安全映射实现,它解决了常规map在并发读写时需要手动加锁的痛点。我在技术面试中经常发现,很多候选人虽然知道…

2026/8/24 6:39:19 阅读更多 →

最新新闻

C语言链表实现通讯录系统:数据结构课程设计实战指南

C语言链表实现通讯录系统:数据结构课程设计实战指南

1. 项目概述与核心价值通讯录系统,听起来是个老生常谈的课程设计题目,但用C语言和链表来实现,这其中的门道可一点都不少。我当年做这个设计的时候,也走过不少弯路,比如内存泄漏、链表操作混乱,导致程序动不…

2026/8/24 10:10:30 阅读更多 →
质数乘积取模:从筛法到模运算的算法实战解析

质数乘积取模:从筛法到模运算的算法实战解析

1. 问题引入:从一道看似简单的OJ题说起最近在辅导一些同学准备编程竞赛和机试时,又遇到了“东华OJ质数的乘积”这道题。题目本身描述非常简洁,通常就是给定一个正整数N,要求计算所有小于等于N的质数的乘积,并对一个较大…

2026/8/24 10:10:30 阅读更多 →
SIGMA框架:基于技能关联图的组合式多智能体系统设计

SIGMA框架:基于技能关联图的组合式多智能体系统设计

1. 项目概述:从单体智能到组合式多智能体设计的范式转变最近在跟进多智能体系统(Multi-Agent System, MAS)的前沿进展时,一个名为“SIGMA”的框架引起了我的注意。它的全称是“Skill-Incidence Graphs for Compositional Multi-Ag…

2026/8/24 10:10:30 阅读更多 →
模糊专家系统实战:从原理到工业应用与智能控制实现

模糊专家系统实战:从原理到工业应用与智能控制实现

1. 从“模糊”到“专家”:一个被误解的智能核心在人工智能的众多分支里,“模糊专家系统”这个名字听起来总有点矛盾。一方面,“模糊”似乎意味着不精确、不确定,带着点“差不多就行”的随意感;另一方面,“专…

2026/8/24 10:10:30 阅读更多 →
从质数乘积问题解析埃氏筛与高精度算法的实战应用

从质数乘积问题解析埃氏筛与高精度算法的实战应用

1. 项目概述:从一道经典OJ题看算法思维训练“东华OJ质数的乘积”这个题目,乍一看可能觉得平平无奇,不就是求几个质数的乘积吗?但如果你真的这么想,那可能就错过了这道题背后隐藏的算法思维训练价值。我在刷题和教学的过…

2026/8/24 10:10:30 阅读更多 →
不用COLMAP也能重建3D?3dgs-mcmc随机初始化模式让普通照片直达3D高斯模型

不用COLMAP也能重建3D?3dgs-mcmc随机初始化模式让普通照片直达3D高斯模型

不用COLMAP也能重建3D?3dgs-mcmc随机初始化模式让普通照片直达3D高斯模型 【免费下载链接】3dgs-mcmc [NeurIPS 2024 Spotlight] Implementation of the paper "3D Gaussian Splatting as Markov Chain Monte Carlo" 项目地址: https://gitcode.com/gh_…

2026/8/24 10:09:29 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →