VSLANG=1033:彻底解决Qt Creator中MSVC编译输出乱码问题

我印象最深的一次,是某个 Qt 项目在 Qt Creator 里切到 MSVC 工具链重新构建,编译输出窗口忽然变成一片乱码:错误码前面全是问号块,路径变成一串不认识的字,“问题”面板里的条目点下去也跳不到对应代码行。后来我把系统区域、Qt Creator 版本、项目编码挨个怀疑了一遍,最后真正救场的,是只设置一个环境变量:VSLANG=1033。

这不是玄学。这篇文章想把这次排查的链路完整讲清楚,包括乱码到底在哪一环发生、VSLANG=1033 为什么能把问题从源头掐死,以及设置之后还有哪些乱码是它管不着的。它适合所有在 Windows 下用 Qt Creator 搭配 MSVC 工具链、被编译输出乱码折磨过的人读。如果你用的是 MinGW 工具链,大概率也见过类似的坑,只不过两者的成因和药方不太一样,后面会专门对比。

1. 先从一次“满屏问号”开始:编译输出乱码到底是什么体验

1.1 典型现场:错误信息、C4819 警告、路径全部变成乱码

那次我把代码里一行std::cout故意拼错成std::cour,想测试编译器的报错反应。结果编译输出窗口里出现的是类似这样的东西:

error C2065: "std::cour": δ...��

本来应该看到“未声明的标识符”一行中文提示,结果中文全变成了一串替换符。如果我把代码里的中文路径也卷进来,情况更糟:MSVC 输出的文件名和路径会一起乱掉,Qt Creator 的“问题”面板拿到了乱码路径,没办法把它映射回编辑器,双击错误条目完全没有反应。这是最影响开发效率的一种乱码,因为你不只是看着难受,连定位错误都做不到。

另一个高发点是 C4819 警告。中文 Windows 系统上,当你某个源文件里含中文注释,编译器会提示:

warning C4819: 该文件包含不能在当前代码页(936)中表示的字符...

这段消息本身也是中文,在 Qt Creator 里同样乱码。更迷惑的是,这个警告和“编译失败”无关,但它会一股脑堆在输出里,把真正有用的错误信息挤出视野。我见过有人把 C4819 当成致命错误去查,其实它只是个编码警告。

1.2 为什么偏偏是“Qt Creator + MSVC”最容易踩中

先说结论:这个组合天生就有编码的“性格冲突”。

MSVC 工具链有一个很“微软”的习惯:它的错误、警告、链接输出会跟随 Windows 的系统 UI 语言。你的 Windows 是简体中文版,cl.exe 输出的就是简体中文消息。而 Qt Creator 作为 Qt 生态的 IDE,内部处理文本时更倾向统一的 UTF-8 哲学,编译输出窗口拿到子进程的字节流后,按 UTF-8 的规则去解读。一个输出 GBK 中文,一个按 UTF-8 解码,中间必然错位。

对比之下,MinGW 工具链几乎不踩这个坑,因为 GCC 家族的编译错误消息无论什么系统语言下都是英文,纯 ASCII 字节流哪怕换三种解码方式也不会乱。所以我当时排除问题的第一步,就是切回 MinGW Kit 重新构建,发现一切正常,于是很快就锁定了“这是 MSVC 特有行为,不是项目文件损坏,也不是 Qt Creator 坏了”。

我当时的排查顺序大概是这样:先怀疑源码文件编码 → 排除 → 怀疑 Qt Creator 配置 → 搜索无果 → 换 MinGW 对照 → 确认 MSVC 输出编码问题 → 找到 VSLANG 方案。这个顺序基本是每个 Windows Qt 开发者的必经之路,与其绕圈,不如直接记住:遇到 MSVC 输出乱码,第一优先级就该想到编译器本地化输出。

2. 编码链路:乱码发生的每一个环节都值得拆开看

2.1 MSVC 在中文系统里究竟输出什么编码

要理解 VSLANG 为什么有效,得先明白乱码的字节源头。

Windows 中文系统的“非 Unicode 程序”默认走 ANSI 代码页,简体中文就是 CP936,也就是我们常说的 GBK。MSVC 的命令行工具 cl.exe、link.exe、nmake.exe 本质上都是历史悠久的原生程序,它们往 stdout/stderr 写文本时,用的不是 UTF-8,而是当前环境认定的 ANSI 代码页。在简体中文系统上,就是 GBK。

当你直接在 cmd 里跑 cl 的时候,cmd 窗口本身是按 GBK 渲染的,所以你在控制台里看到的还是“未声明的标识符”,没有任何乱码。但 Qt Creator 并不是用 cmd 窗口去跑编译,它是通过进程管道捕获输出的。编译进程把一串 GBK 字节丢到管道里,Qt Creator 拿到的只是一堆 0xC4 0xB4 0xC9 0xF9 之类的字节序列,至于这段序列该怎么解读,那就是接收方的事了。

2.2 Qt Creator 收到字节后是怎么处理的

这里很容易产生误解,很多人以为 Qt Creator 能智能识别各种编码。实际上,Qt Creator 的构建进程管理基于 QProcess,QProcess 从管道里读出来的是原生字节。Qt 在 Windows 上对本地编码的处理本来就比较微妙,而 Qt Creator 的编译输出窗口更倾向于按 UTF-8 文本去渲染显示。

结果就是:GBK 编码的中文字节流被当成 UTF-8 解码。UTF-8 的多字节序列有严格的校验规则,GBK 字节经常凑不成合法 UTF-8 序列,于是解码失败的部分被替换成 U+FFFD,也就是我们在界面上看到的那个黑底白色问号块 �。当这些替换符被再次编码保存、再次用 GBK 打开时,就会演变成“锟斤拷”这三大乱码元凶——技术圈的老人都认得它们。

需要留意的是,不同 Qt Creator 版本、不同 Qt 版本,QProcess 对本地代码页的处理细节不完全一致,所以你会看到有些人乱码形态是 �,有些人看到的是“锟斤拷”,还有人看到的是被错误映射成别的汉字。表现形式不同,根子其实是同一个:发送方的代码页与接收方的解码假设不匹配。

2.3 一个错误信息从 cl.exe 到显示器经历了什么

我们把那条“未声明的标识符”的旅程拆开看:

  1. cl.exe 根据系统 UI 语言选中中文资源字符串。
  2. 该字符串在简体中文 Windows 上被编码为 GBK 字节。
  3. 字节被写入管道,Qt Creator 的构建进程捕获。
  4. Qt Creator 输出窗口按 UTF-8 规则解析这些字节。
  5. 解析失败的位置变成 �,或者被错误地映射成其它字符。

但如果设置了 VSLANG=1033,第 1 步就会发生质变:cl.exe 选中的是英文资源字符串,比如undeclared identifier。英文字符串全是 ASCII,字节范围在 0x00 到 0x7F 之间。ASCII 是迄今为止兼容性最好的编码,无论你用 UTF-8、GBK、Latin-1 还是 UTF-16 去解读,它都能原样还原成同样的英文句子。

可以把这想象成发电报:发报人用 GBK 密文发了一封中文电报,收报人手里却只有 UTF-8 密码本,译出来当然是一堆问号。与其想方设法统一密码本,不如让发报人直接改用明文 ASCII 发电报,任何密码本都能读懂。VSLANG=1033 就是让 VS 工具链“改发 ASCII 明文”的那个开关。

3. VSLANG=1033 为什么是“终极解决”:原理先讲透

3.1 VSLANG 是什么,1033 这个数字哪里来

VSLANG 是 Visual Studio 系列工具的语言环境变量,全称可以理解为 Visual Studio Language。Visual Studio 2015 之后的命令行工具链,包括 cl.exe、link.exe、nmake.exe、MSBuild.exe 等,在启动时会读取这个变量来决定使用哪种语言的本地化资源。

1033 是语言 ID,属于 LCID(Locale Identifier)体系,十六进制是 0x0409,代表“英语(美国)”。与之对应的,2052 是“简体中文(中国)”。所以 VSLANG=1033 的意思是告诉这些 VS 工具:给老子说英文。

这个变量不改变系统的任何设置,不改区域、不改语言包、不需要重启操作系统,只是让命令行工具换一套消息资源。因为 VS 工具链的本地化消息是独立资源文件,运行时才动态加载,环境变量是它们最原生的切换入口。

3.2 为什么令输出变为英文就能免疫所有解码问题

关键在于:英文资源字符串全部是 ASCII 可打印字符。任何 >0x7F 的字节都不会出现,那么无论下游怎么猜测编码,得到的文本都一字不差。

Qt Creator 的编译输出解析器也一样。它的“问题”面板需要从原始输出里正则匹配文件名、行号、列号和错误代码。纯英文输出是最规整的形态,error C2065这种模式一目了然,解析器不会被乱码字符干扰,双击跳转也能正常工作。这一点在项目里同时混用 MSVC 和 MinGW Kit 时尤其有用,因为两套工具链的输出风格在英文状态下是高度一致的,你不需要在脑子里切换两套乱码/英文模式。

另外,MSVC 的错误信息关键在错误代码,C2065、C2664、LNK2019 这些代码本身不翻译,中英文状态下一模一样。真正的中文提示说“未声明的标识符”,英文说undeclared identifier,对于读过几本英文技术书的人来说,后者甚至更快理解。而且技术上出了错,你搜英文错误文本和错误代码,能搜到的资料数量是中文的十倍不止。

3.3 对比其它常见“治理手段”,为什么它们都不够终极

我在排查过程中试过好几种民间方案,这里直接做成表格,省得你再踩一遍:

治理手段原理为什么治标不治本
把 Windows 系统区域改成英文让系统 UI 语言变成英文,MSVC 资源也随之变英文全局副作用大,其它软件联动变化,换机器后容易忘
在 cmd 里执行chcp 65001把控制台代码页切成 UTF-8只对交互式 cmd 窗口有效,Qt Creator 通过管道启动的进程根本不读控制台代码页
在 Qt Creator 里改“文件编码”只影响编辑器和源文件读写管不到编译子进程的输出字节流
编译选项加/utf-8告诉编译器源码按 UTF-8 读取解决源码里中文字面量问题,不解决 MSVC 消息本身的本地化输出
设置 VSLANG=1033从源头让 MSVC 消息变成英文 ASCII直接消除非 ASCII 输出,任何解码方式都不会再乱

这里特别说一下 chcp 为什么对 Qt Creator 无效。chcp 65001改变的是控制台会话的代码页,它影响的是 conhost 这个终端窗口的显示。而 Qt Creator 启动编译进程时,子进程的 stdout/stderr 指向的是管道而不是终端,管道传输的字节由进程内部决定,代码页切换对它没有约束力。所以“在 cmd 里 chcp 之后就很正常”只能说明你的场景不同,解决不了 IDE 里的乱码。

4. 实操:三种配置方式与推荐组合

4.1 方式一:Qt Creator 全局环境变量

这是最直接的入口:让 Qt Creator 启动的所有子进程都带上 VSLANG。

操作路径是:工具 → 选项 → 环境 → 系统,右侧有一个“环境变量”按钮,点开后点击“添加”或直接在编辑区新增一行VSLANG=1033。保存后重启 Qt Creator,让环境变量真正进入它的进程环境。

这个方式的优点是“一劳永逸”,不管开哪个项目、切哪个 Kit,编译输出都是英文。缺点是“太一劳永逸了”:如果同一个 Qt Creator 里还管理着 MinGW Kit,你也会给 MinGW 的编译进程传这个变量,虽然 MinGW 本来就不受影响,但心理上总觉得有点多余。更重要的是,如果你换了电脑、换了 Qt Creator 版本,这个配置很容易忘记迁移。

4.2 方式二:指定构建套件(Kit)的环境

我更推荐大多数人用 Kit 级配置,因为它足够精准。入口是:工具 → 选项 → Kits,选中正在用的 MSVC Kit(名称通常类似Desktop Qt 5.15.2 MSVC2019 64bit),在详情区域找到Environment字段,点击编辑按钮,在环境变量对话框里新增VSLANG=1033。

Kit 级环境变量只对选中这个 Kit 构建时生效。如果你同一个项目里既有 MSVC Kit 也有 MinGW Kit,不会互相干扰。MSVC Kit 保持英文输出,MinGW Kit 默认就是英文,两边输出风格统一,这对多工具链切换的开发者特别舒服。

注意一个小细节:Qt Creator 的 Kit 环境配置有的版本默认可能是“使用系统环境”再加自己的变量,有的是“空白环境”再加变量。如果看到空白环境选项,记得选择以系统环境为基础,否则可能缺少 PATH 等必要变量,编译时会莫名报“找不到 cl.exe”。

4.3 方式三:Windows 用户环境变量

第三种做法是直接在 Windows 层面设置:右键“此电脑” → 属性 → 高级系统设置 → 环境变量,在用户变量里新建VSLANG,值填1033。保存后需要彻底重启 Qt Creator(不是重新加载项目,而是退出进程再启动)才会生效。

这个方式对“自己开 cmd 手动跑 vcvarsall 然后调 cl”的场景同样有效。因为 VSLANG 是进程启动时读取的,你在 cmd 里临时set VSLANG=1033只影响当前会话,退出就没了;写到系统环境变量里才是长期生效。

但要注意:如果你机器上装了中文语言包,某些 Visual Studio 相关工具的非命令行界面也会跟着变英文。对大多数人来说这不是问题,甚至更利于统一体验,但也有极少数人希望保留中文界面,那就不要用这个方式,改用 Kit 级配置。

4.4 我的推荐组合与快速验证方法

我的实际组合是:Kit 级配置为主,团队项目 README 里写清楚一句“Windows + MSVC 请设 VSLANG=1033”。这样既不污染全局,也方便新人照做。Qt Creator 全局环境变量我一般不用,因为我有多个 Kit 混用,Kit 级已经足够。

设置完成后怎么确认生效?最快的方法是故意制造一个编译错误,比如在源文件里写一行:

std::cour << "test";

重新构建,看编译输出窗口里是不是出现:

error C2065: 'std::cour': undeclared identifier

如果看到的是这一行英文,说明配置成功。如果还是乱码,按顺序检查三件事:Qt Creator 是否完全重启、设置的入口是否写在了正确的 Kit 下、系统里有没有被别的机制覆盖 VSLANG(比如某些构建脚本里强制set VSLANG=2052)。

注意:修改环境变量后,Qt Creator 如果只是关闭项目再打开,并不会重新读取变量。必须完全退出 Qt Creator 进程再启动。这一点我踩过,每次改完变量后忘了重启,都会怀疑自己是不是写错地方了。

5. 设置之后仍然要处理的三种“非 VSLANG 乱码”

5.1 源码里的中文与 C4819:这个需要配 /utf-8

设置 VSLANG=1033 之后,C4819 警告内容会变成英文,但警告本身仍可能存在。这个警告说的是:“当前代码页(936)下,文件里有些字符无法被安全表示。”它和编译器说什么语言无关,只和“编译器怎么读源文件”有关。

如果你项目里写了中文注释,又没给 MSVC 指定 UTF-8 读取方式,就要在编译选项里加:

# qmake 项目 QMAKE_CXXFLAGS += /utf-8

CMake 项目则加:

if(MSVC) add_compile_options(/utf-8) endif()

加了/utf-8之后,编译器把源码里的中文注释和字符串字面量按 UTF-8 读取,C4819 会消失,程序里的中文字符串运行时也不再乱。这是和 VSLANG 各自解决不同层面的问题:VSLANG 管输出消息的语言;/utf-8管编译器如何解读源码文件字节。

5.2 项目路径带中文:这个和编译器语言无关但容易误判

VSLANG=1033 解决的是编译器消息的语言,但如果你项目路径本身包含中文,比如E:\项目\main.cpp,MSVC 输出该路径时仍然会原样输出中文路径。现代 Qt Creator 对 Unicode 路径的支持比以前好很多,但旧版本或者复杂的转义场景下,仍然可能出现路径显示异常、无法跳转的情况。

这类问题很容易被误判成“VSLANG 没生效”。排查时先区分:乱的是错误消息本身,还是错误消息里的文件路径?如果只有路径乱,说明是路径编码层面的问题。最稳妥的规避方式仍然是老项目里那条朴素规矩:Qt + MSVC 工具链的项目路径尽量保持纯 ASCII,目录名、文件名都不要用中文和特殊字符。这不是歧视中文,纯粹是 Windows 工具链的兼容性现状。

5.3 运行期 qDebug 输出乱码:别和编译输出混为一谈

还有一种常见情况:编译输出已经彻底干净了,但程序跑起来后,Qt Creator 的“应用程序输出”窗口里,qDebug()打印的中文却是乱码。这不是 VSLANG 能管的,因为 VSLANG 只是编译期工具的环境变量,控制不了你程序运行时的 stdout 编码。

Qt 5 时代,qDebug 输出中文在 Windows 上乱码确实很常见,原因和编译输出乱码类似:QString 内部是 UTF-16,输出到控制台时要做本地 8-bit 转换,代码页又是 GBK,两边不对齐就乱。Qt 6 默认走 UTF-8 之后这个情况改善明显。如果你还在 Qt 5,可以在 main 里用QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"))来调整本地编码转换策略,不过要注意这是 Qt 5 的 API。运行期输出和编译输出是两个世界,排查时千万别混在一起,否则会绕进死胡同。

6. 一年之后回头看:这套配置的得与失

6.1 配置前后的对比清单

下面是我在实际项目里记录的配置前后状态,供你参考:

现象配置前(中文 Windows)配置后(VSLANG=1033)
cl.exe 错误消息中文 GBK,常随管道变成乱码英文 ASCII,稳定可读
编译输出窗口�、锟斤拷、乱码路径混合干净整齐,无替换符
问题面板双击跳转路径乱码时经常失败稳定恢复
C4819 警告中文乱码 + 误导英文内容,但仍需/utf-8消除
其它应用界面语言不受影响用系统变量方式时部分 VS 工具会变英文
可搜索性中文错误信息资料少英文错误码 + 文本资料丰富

6.2 不必担心“英文输出会丢信息”的问题

刚接触这个方案时,我也有点犹豫:毕竟看中文提示更直观,改成英文会不会降低排查效率。实际用下来,英文输出反而更快。MSVC 的错误代码本就是英文体系的产物,你把错误代码复制去搜索,中文社区和英文社区的解决方案一抓一大把;而一旦输出变成中文,反而经常搜不到完全匹配的结果。

另外,Qt Creator 的“问题”面板对英文输出的解析成功率更高。错误条目能正确跳转后,省去的痛苦远大于“读中文还是读英文”的那一点点心理成本。工具输出保持英文,代码注释可以继续中文,两者完全不冲突。

6.3 一点个人技巧

在新机器上配置 Qt 环境时,我固定做三件事:MSVC Kit 里设 VSLANG=1033,编译选项加/utf-8,项目路径保持纯 ASCII。做完这三件事,基本再没碰到过编译输出乱码。如果是给团队做环境文档,我会在“环境准备”一节里直接写“Windows 下 MSVC Kit 务必设置 VSLANG=1033,否则编译输出乱码”,一句话足够,因为把这个变量的作用讲透,就是这篇文章前面大半部分的内容了。

相关新闻

27个扫描脚本不进上下文:RAG入库前文档扫描的Agent技能实践

27个扫描脚本不进上下文:RAG入库前文档扫描的Agent技能实践

看到这个标题&#xff0c;可能不少正在做RAG&#xff08;检索增强生成&#xff09;的同学都会愣一下&#xff1a;27个脚本&#xff0c;还“不进上下文”&#xff0c;一句话就能触发文档扫描&#xff1f;我刚开始接触这个玩法的时候也觉得玄乎&#xff0c;但把我手头那个知识库项…

2026/10/20 20:46:39 阅读更多 →
YOLOv10超市空货架识别检测系统:从训练到部署全流程解析

YOLOv10超市空货架识别检测系统:从训练到部署全流程解析

做超市智能巡检的朋友应该都懂&#xff0c;货架空不空这件事看着简单&#xff0c;真要靠人天天盯着拍照片、跑现场&#xff0c;时间成本高得吓人。我这两年经手过好几个零售场景的视觉项目&#xff0c;最典型的一个需求就是&#xff1a;能不能用摄像头自动识别哪排货架缺货了、…

2026/10/20 20:46:39 阅读更多 →
AI工程师技能图谱:从理论到工程实践

AI工程师技能图谱:从理论到工程实践

1. 从一份开源技能清单说起这几年AI行业的热度一直没降过&#xff0c;但有个现象很有意思&#xff1a;明明大模型相关的开源项目、论文、工具多到看不过来&#xff0c;真正能把这些东西串成体系的人却少之又少。大多数人今天学一个模型结构&#xff0c;明天刷一个框架API&#…

2026/10/20 20:45:34 阅读更多 →

最新新闻

PyTorch工程实践:从环境搭建到多卡训练与部署的避坑指南

PyTorch工程实践:从环境搭建到多卡训练与部署的避坑指南

1. 为什么“PyTorch”这个标题值得深挖1.1 一个词背后藏着一整条技术栈“PyTorch”这个词看起来简单&#xff0c;就一个框架名&#xff0c;但如果你真在工业界或者学术界待过一段时间&#xff0c;就会知道它从来不是一个孤立的工具。它更像一个入口——从这个入口进去&#xff…

2026/10/20 21:28:44 阅读更多 →
Eclipse导入项目报错排查全攻略:从环境配置到构建路径

Eclipse导入项目报错排查全攻略:从环境配置到构建路径

如果有朋友问我&#xff0c;Eclipse 使用过程中最折磨人的瞬间是什么&#xff0c;我大概率会说导入项目源码之后那一片红色叉号。明明在别人电脑上运行得好好的项目&#xff0c;到了你这儿一导入&#xff0c;Problems 视图立刻刷出几十条错误&#xff0c;错误类型五花八门&…

2026/10/20 21:28:44 阅读更多 →
IPv4地址分类与子网掩码详解:从ABC类到CIDR实战规划

IPv4地址分类与子网掩码详解:从ABC类到CIDR实战规划

聊到IPv4地址&#xff0c;最容易卡住的就是三件事&#xff1a;A类、B类、C类到底怎么分的&#xff1f;子网掩码255.255.255.0为什么长这样&#xff1f;同样是办公室电脑&#xff0c;300台到底该用/24还是/23&#xff1f;很多人能背出A类是1.x、B类是128.x&#xff0c;可真到自己…

2026/10/20 21:28:44 阅读更多 →
AI辅助编程项目为何加速腐化?可执行架构约束与工程实践

AI辅助编程项目为何加速腐化?可执行架构约束与工程实践

1. 为什么AI辅助编程的项目更容易“烂掉”1.1 一个普遍存在的认知误区很多人觉得&#xff0c;用了AI写代码&#xff0c;项目质量应该更高才对。毕竟AI不会手抖打错变量名&#xff0c;不会忘记加分号&#xff0c;生成的代码看起来结构工整、注释齐全。但实际跑过几个AI辅助项目之…

2026/10/20 21:28:44 阅读更多 →
列控仿真系统C#源码解析:从周期安全逻辑到制动模型调参避坑

列控仿真系统C#源码解析:从周期安全逻辑到制动模型调参避坑

简介&#xff1a;这份资源是面向计算机、自动化等专业学生及从业者的C#列控仿真系统完整源码&#xff0c;源自个人毕业设计项目&#xff0c;评审得分95分&#xff0c;调试运行正常。项目以CTCS-2级列控仿真系统为核心&#xff0c;包含完整的sln解决方案与工程配置&#xff0c;适…

2026/10/20 21:28:44 阅读更多 →
技能习得底层逻辑:从知识到肌肉记忆的刻意练习路径

技能习得底层逻辑:从知识到肌肉记忆的刻意练习路径

1. 从“skills”这个标题说起&#xff1a;一个被严重低估的硬核话题“skills”这个词&#xff0c;单独拎出来看&#xff0c;信息量几乎为零。它不像“分布式锁”“图像分割”“家庭收纳”那样自带场景&#xff0c;也不像“副业”“跳槽”那样自带情绪。但恰恰是这种极简的标题&…

2026/10/20 21:27:39 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →