3

我正在做一些pdf文本提取。我附上了我遇到问题的场景的屏幕截图。

调试代码时的文本值

屏幕截图 - 打印到控制台的文本

为什么eclipse控制台无法打印“规范”这个词?

相反,它被打印为“规范”。

我可以看到字符重叠。

但是在调试代码期间,相同的文本显示为没有“问号”。

有没有办法将相同的文本打印到控制台?

请帮忙。

4

2 回答 2

4

问题是“fi”连字(“重叠字母”),它是 Unicode 中的单个字符。在调试视图中,使用了绘制文本的 Windows 方法;这些了解 Unicode 并且可以正确呈现连字。

控制台视图使用某种编码。与 Windows 一起使用时,默认值为“cp1252”、Codepage 1252 或 ISO 8859。这些编码不知道该特定字母且无法打印,因此使用问号代替。

Window > Preferences您通常可以通过, General > Workspace,设置 Eclipse 的编码Text file encoding。虽然我认为在任何地方都使用 UTF-8 是个好主意,但它可能会导致现有文件出现问题。

您可以在项目属性 category 中设置每个项目的编码Resource

如果您只想为控制台视图设置编码,这是最不具沉浸感的解决方案,它并不完全直观。控制台视图编码是您用于运行项目的运行时配置的属性。Run > Run Configurations..., 你的运行配置, Common.

当您使用其中一种方法将编码设置为 UTF-8 时,连字将正确打印到控制台视图。

当然,更通用的设置只有在没有被更具体的设置(工作区、项目、运行配置)覆盖时才有效。

于 2013-09-21T18:31:37.920 回答
3

我肯定在这里把所有的术语都弄错了,但 PDF 可能使用了不属于 ASCII 字符集的“fi”组合的字形。因此它在控制台中呈现为“?”。请注意,在窗口的中间部分,“fi”中的“i”比“f”后跟“i”的 ASCII 序列“f”更接近“f”,并且“i”也是错过了点。

于 2013-09-21T17:01:20.087 回答