yzy533544 发表于 2023-11-18 15:24:03

请问输出文本乱码怎么解决

<火山程序 类型 = "通常" 版本 = 1 />

方法 控制台_输出 <公开 静态 @禁止流程检查 = 真>
参数 内容 <类型 = 文本型>
{
    如果 (m_ininted)
    {
      WriteConsole (p_handleOut, 内容, 取文本长度(内容), 0, 0)
    }
}


代码如上,我创建了一个控制台窗口,然后使用上面的代码输出一个文本内容,但是输出的文本是一些乱码,请问是什么地方出问题了呢:'(

无情铁手 发表于 2023-11-18 15:32:24

可能语法有问题,你这学法我还是第一次见,可能我是个菜鸟的原因

hcwanz 发表于 2023-11-18 15:53:00

把 WriteConsole 的实现发出来啊,你这谁知道

yzy533544 发表于 2023-11-18 17:30:51

hcwanz 发表于 2023-11-18 15:53
把 WriteConsole 的实现发出来啊,你这谁知道

<火山程序 类型 = "通常" 版本 = 1 />

方法 WriteConsole <公开 静态 类型 = 逻辑型 @输出名 = "WriteConsoleA" @视窗.输入 = "kernel32.dll">
参数 hConsoleInput <类型 = 整数 注释 = "控制台的标准输出句柄">
参数 lpBuffer <类型 = 文本型 注释 = "指向输出的内容">
参数 nNumberOfCharsToWrite <类型 = 整数 注释 = "指定要输出的数据长度">
参数 lpNumberOfCharsWritten <类型 = 整数 注释 = "指向一个双字,用来返回实际输出的字节数">
参数 lpReserved <类型 = 整数 注释 = "保留值.为NULL">

weilai 发表于 2023-11-18 17:51:26

乱码肯定就是编码问题

weilai 发表于 2023-11-18 17:51:45

所有的乱码都是编码问题

hcwanz 发表于 2023-11-18 18:02:59

yzy533544 发表于 2023-11-18 17:30
方法 WriteConsole
参数 hConsoleInput
参数 lpBuffer
输出名的A改成W
<火山程序 类型 = "通常" 版本 = 1 />

方法 WriteConsole <公开 静态 类型 = 逻辑型 @输出名 = "WriteConsoleW" @视窗.输入 = "kernel32.dll">
参数 hConsoleInput <类型 = 整数 注释 = "控制台的标准输出句柄">
参数 lpBuffer <类型 = 文本型 注释 = "指向输出的内容">
参数 nNumberOfCharsToWrite <类型 = 整数 注释 = "指定要输出的数据长度">
参数 lpNumberOfCharsWritten <类型 = 整数 注释 = "指向一个双字,用来返回实际输出的字节数">
参数 lpReserved <类型 = 整数 注释 = "保留值.为NULL">

suyan 发表于 2023-11-18 19:16:03

火山是W编码,你用的A,要转码
页: [1]
查看完整版本: 请问输出文本乱码怎么解决