SQL Server 2008 - "Save Results as" 选项在 CSV 中添加特殊字符
SQL Server 2008 - "Save Results as" option adding special characters in CSV
我有一个 SQL 查询,其中 returns 只有一列包含对象 ID。在 management studio 中执行查询后,当我右键单击结果网格并将 select "Save Results As..." 转换为 CSV 时,输出会正确存储在 CSV 文件中。
但是当我尝试从 java 程序读取相同的输出文件时,我发现在文件的开头(第一条记录之前)添加了一些特殊字符。
所以我在命令提示符下输入文件,我可以看到特殊字符。 这些字符在任何编辑器 (Notepad/Notepad++/EditPlus) 中都不可见。这意味着在导出结果时,特殊字符会添加到输出文件中。
如果我select所有的记录和copy-paste他们在Ms-Excel那么就没有特殊字符的问题。
有人遇到过这个问题吗?有什么办法可以避免吗?
知道了!感谢@PeterJ 和@srutzky 正确指出错误。我正在使用下面的代码来读取文件。
FileInputStream fstream = new FileInputStream(this.getProperty("input.file"));
br = new BufferedReader(new InputStreamReader(fstream));
为了处理 UTF 编码,我修改了如下代码并且有效:
FileInputStream fstream = new FileInputStream(this.getProperty("input.file"));
br = new BufferedReader(new InputStreamReader(fstream,"UTF8"));
我有一个 SQL 查询,其中 returns 只有一列包含对象 ID。在 management studio 中执行查询后,当我右键单击结果网格并将 select "Save Results As..." 转换为 CSV 时,输出会正确存储在 CSV 文件中。
但是当我尝试从 java 程序读取相同的输出文件时,我发现在文件的开头(第一条记录之前)添加了一些特殊字符。
所以我在命令提示符下输入文件,我可以看到特殊字符。
如果我select所有的记录和copy-paste他们在Ms-Excel那么就没有特殊字符的问题。
有人遇到过这个问题吗?有什么办法可以避免吗?
知道了!感谢@PeterJ 和@srutzky 正确指出错误。我正在使用下面的代码来读取文件。
FileInputStream fstream = new FileInputStream(this.getProperty("input.file"));
br = new BufferedReader(new InputStreamReader(fstream));
为了处理 UTF 编码,我修改了如下代码并且有效:
FileInputStream fstream = new FileInputStream(this.getProperty("input.file"));
br = new BufferedReader(new InputStreamReader(fstream,"UTF8"));