【问题标题】:Character encoding via JDBC/ODBC/Microsoft Access通过 JDBC/ODBC/Microsoft Access 进行字符编码
【发布时间】:2012-12-17 07:26:38
【问题描述】:

我正在通过 JDBC/ODBC 成功连接到 Microsoft Access。之后,我进行查询以从 Microsoft Access 中选择行,并将这些结果写入 TXT 文件。一切正常,但我有一些包含重音符号的字符串,这些字符串显示为“?”在 TXT 文件中。我已经尝试了各种形式的方法来用 java 编写文件,如 PrintWriter、FileWriter、Outputstream 等,包括在其中一些方法中添加字符编码参数(UTF-8 或 ISO-8859-1)。我需要任何有关以正确方式显示这些字符的方法的帮助。谢谢。

【问题讨论】:

  • 几个问题,你是如何阅读文本文件的?来自访问的信息是否正确?
  • @BevynQ 嗨。我通过直接打开它来读取文本文件。是的,信息来自 Microsoft Access 正确,除了显示为“?”的字符,因为重音。

标签: java ms-access jdbc character-encoding odbc


【解决方案1】:

试试下面这行,

  String OUTPUTFILE = "PATH/TO/FILE/";
  BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(
                      new FileOutputStream(OUTPUTFILE),"UTF8"));

将其添加到代码后,您应该可以使用 bf.write('VALUE')UTF8 字符写入文件。而且,还要确保将您的文本编辑器编码设置为UnicodeUTF8,如果您不这样做,它可能看起来孔处理不起作用,这会导致更多的混乱。

已编辑:

读取 UTF8 txts

String IPUTFILE = "PATH/TO/File";

BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                    new FileInputStream(INPUTFILE), "UTF8")); 

然后读取String str = in.readLine();

【讨论】:

  • 此代码不起作用/写入文件。这就是我把它放在我的代码中的方式: String OUTPUTFILE = "text.txt"; BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(OUTPUTFILE))); bf.write("一个字符串");没有显示任何字符。
  • 错过了 bf.close();我会再试一次。
  • 我试过了,它显示了字符串,但字符为“?”。
  • 我看到你的评论,你说你直接读文件,你读的是正确编码的文件吗?您是否确保您的文本编辑器也设置了正确的编码?
  • 我如何知道文件的编码是否正确?您如何输入代码,我将“UTF8”参数放入 FileOutputStream。我用 UTF-8 编码的记事本++打开它,但保持不变“?”字符。
猜你喜欢
  • 1970-01-01
  • 2013-10-12
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
相关资源
最近更新 更多