Trajectory゜
粉丝:18
“屯屯屯”是一段在编程社区中常见的经典乱码,与“烫烫烫”类似,通常只有程序员(尤其是使用微软系开发工具者)才会理解其来源。它并非模拟喝水声的拟声词“吨吨吨”,而是源自某些编译器在调试(Debug)模式下对未初始化内存的自动填充机制。
在微软Visual C++等编译器的Debug模式下,为了帮助开发者检测内存错误,会将未初始化的堆内存填充为特定的十六进制值。例如,若内存被设为0xCDCDCDCD,当这段内存被当作字符串输出时,每个0xCD对应GBK编码中的“屯”字,连续多个0xCD就会显示为“屯屯屯……”。
类似的乱码还有:
“烫烫烫”:对应0xCCCCCCCC,在GBK编码中显示为“烫”;
“锟斤拷”:源自UTF-8到GBK转换过程中的替换字符现象;
“锘锘锘”:通常与BOM(字节顺序标记)或编码解析错误有关。
这类乱码表面看似无意义,实则反映了底层内存状态或字符编码处理中的特定机制,成为程序员间一种具有技术梗色彩的“暗号”。