- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
QTextEdit t; t.setHtml(" ");
显示带有锐音符的小“a”而不是不间断空格。这种情况仅发生在 Windows 上,而不是 Linux 或 FreeBSD 上。可能是什么原因造成的? Windows/Qt 中的错误?我该如何解决这个问题?
(Windows Vista x64 pro 上的 Qt 4.5。我的区域设置是默认的“C”。)
更新:我感觉这是 Qt/Windows 中的错误(已经提交了错误报告)。我已经创建了一个解决方法,但它很丑陋,并且涉及更改我的格式算法并使用 <pre> </pre>
使用 CSS 来产生所需的输出。
有没有更简单的解决方法?
更新:&8194;和 &8195;两者都按照“wcm”的建议工作。可以肯定地说这也适用于其他用户吗?
不工作可能仍然是一个错误,但是 &8194;似乎是一个可以接受的解决方法(?)。
更新:原来我错过了一些重要的事情:
在 Qt/Windows 中,仅使用我使用的称为“终端”的特定单型字体才能正确渲染。当我切换到“Lucida Console”(或任何其他字体)时
正确渲染!伙计,我希望我早点注意到这一点!该死。很明显某处存在错误(最有可能在 Qt 中)。但没关系,至少对我来说使用不同的字体已经解决了问题。
更新:这并不是我之前认为的 Qt 中的错误。要知道原因
渲染不正确,请参阅 Tewha 的回答。
[已解决]
最佳答案
我发现您已经基本弄清楚了这一点,但我想我应该添加其中的“原因”。终端字体基于代码页 437,又名 DOS-US。 á 位于位置 160。
代码页 437 的字体并不多。事实上,我认为 Terminal 是唯一的 TrueType 字体!无论如何,如果您没有明确尝试显示老式 DOS 图形,则不应该使用终端。
代码页 437 到底是什么意思?它是“高 ASCII”,大约 1981 年。除了通常的 32-127 个字符之外,它还包括一些重音字母、用于在事物周围绘制边框的方框图形字符、一些数学符号,甚至是四组纸牌的符号!但世界以不同的方式变化,因此除了 32-127 之外,即使是其他字体中通常可用的字形也不是您所期望的。如果您在窗口中运行旧的文本模式 MSDOS 程序,它将使用代码页 437 字体。
有关详细信息,请参阅“code page 437 ”(维基百科)。
关于qt4 - QTextEdit 中不间断空格未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843035/
我是一名优秀的程序员,十分优秀!