为什么我在控制台写入内容时会发出嘟嘟声?

5

我正在为我所使用的应用程序编写一个Web服务的控制台测试器。当输出(JSON格式)较大时,控制台应用程序会转动并发出5-10秒钟的哔哔声。我检查了输出中是否有\a字符,但没有找到,所以我不确定是什么原因导致了这种哔声。

目前,我只是猜测输出过长,但我不确定问题可能还有其他原因或是否有任何解决方案。


1
我曾经遇到过类似的问题,如果输出的大小超过了控制台上的行缓冲区,它就会发出嘟嘟声。你尝试调整一下垂直缓冲区大小了吗? - lukiffer
@lukiffer,我应该将BufferHeight设置为多少? - Stefan H
取决于您的输出大小。需要足够的垂直线来显示输出...最终我不得不将数据分块并分别使用Console.Write()调用。 - lukiffer
这可能是对我最好的选择,因为数据长度会相当不同,并且可能在数万行范围内。 - Stefan H
@lukiffer 我正在尝试打印的字符串长度为245345个字符。分成多少个写入调用是安全的字符计数? - Stefan H
显示剩余3条评论
3个回答

0
即使您检查了BELL字符的输入,它仍然可能会哔哔作响。这是由于字体设置和Unicode转换造成的。所涉及的字符是U+2022,圆点符号。
Raymond Chen 解释
在OEM代码页中,弹头字符被转换成了蜂鸣声。但是为什么会这样呢?
你所看到的是MB_USEGLYPHCHARS的反向作用。Michael Kaplan之前曾经讨论过MB_USEGLYPHCHARS。它确定在转换为Unicode时是否应将某些字符视为控制字符或可打印字符。例如,它控制ASCII响铃字符0x07是否应转换为Unicode响铃字符U+0007还是Unicode弹头U+2022。在转换为Unicode时,您需要使用MB_USEGLYPHCHARS标志来决定如何进行转换,但是在从Unicode转换时不存在相应的歧义。在从Unicode转换时,U+0007和U+2022都映射到ASCII响铃字符。

0

可能是BEL信号?

控制-G

7

7

BEL

BELL

这是一种控制字符,用于在需要引起注意时使用;它可以控制警报或注意设备。


1
д»–иҜҙжҺ§еҲ¶еҸ°иҫ“еҮәдёӯжІЎжңү\aзҡ„иҝ№иұЎгҖӮ\aжҳҜBELзҡ„иҪ¬д№үеәҸеҲ—гҖӮ - BoltClock

0

在尝试写入事件日志时,我曾经遇到过类似的情况,但是它已经满了。

尝试 开始 > 运行... > eventvwr 然后清除一些日志或通过“操作”菜单更改日志的最大大小。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接