java - 更改 .dbf 文件的字符集

标签 java printing special-characters dbf

我有这个 java 应用程序,应该从 .dbf 或 dBase3 文件加载和打印带有法语特殊字符的数据,但它不起作用;字符未显示。

我问this question认为问题仅与打印有关,但是如果您看到评论,您可以理解我发现问题与数据库有关而不是与打印有关,因为当向我的 JTextPane 添加特殊字符时,它会打印通常......我尝试更改textPane的字符集但仍然是同样的问题。

此外,对于那些喜欢解决难题的人来说,问题变得更加复杂,当我使用 MS Access 打开我的 .dbf 文件时,字符就在那里。所以我在想,错误可能发生在从数据库加载数据时...... 顺便说一下,为了获取数据,我使用了名为 xBaseJ 的 API它不使用 sql,而是它自己的实现。

我希望我已经提供了所有必要的详细信息,并且我真的很感谢任何帮助,真的..任何想法都可以帮助我找出解决方案(以及问题)。

编辑 现在,有了 AnswerEthan Furman ,我们知道问题与数据库的编码有关,它是普通的旧 Ascii,与 xBaseJ API 无关。

现在的问题应该是:是否可以更改 dBase 数据库的编码?我该怎么做?谢谢@Ethan Furman,并提前感谢与此问题相关的任何帮助。

最佳答案

终于,我找到了答案......

首先,如上所述,感谢 Ethan Furman,我发现问题与 dbf 数据库的编码有关,而不是与 xBaseJ API 有关。

然后我不得不花几个小时寻找一个可以帮助我更改数据库字符集(Ascii)的工具。我发现 Apache 的 OpenOffice 可以做到这一点,但问题是我的 Windows 上没有 OpenOffice,我尝试下载它 5 或 6 次,但每次都被中断,因为我的互联网连接真的很糟糕(它下载速度为 6 至 7Kbs),.exe 文件为 209 mB。所以我不得不更多地搜索另一个软件来完成所需的任务。我不知道我是如何找到这个 DBF Commander 的,它的功能不仅仅是更改字符集。无论如何,下载了试用版,该版本可以执行所有操作,但每次执行任何操作时都会显示一个窗口,告诉您购买它:D。

最后,我将字符集从 Ascii(850 International MS-DOS 或其他)更改为 1252 Windows Ansi...aaaaand繁荣!它有效!

我仍然认为术语“codePage”“Charset”和“encoding”之间存在差异,并且我使用它们是相同的..但至少现在我知道它们存在,这是我学到的新东西。

无论如何,再次感谢 Ethan Furman,我还要感谢 Google 使这一切成为可能:D!

关于java - 更改 .dbf 文件的字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24432174/

相关文章:

java - 烫伤中的垂直分区

java - 我应该增加依赖项更新的主要版本吗

Java EE - 查找 session 大小

html - float 列表的打印友好版本

php - 强制下载瑞典字符 (åäö) 文件名

windows - Windows 环境变量名称和值的有效字符是什么?

php - 使用带有特殊字符的 SimpleXML 在 PHP 中创建 XML

java - 如何从字符串中删除一行?

javascript - 从 javascript 打印

java - 在java中打印一个独特的三角形字符