前两天公司安排做Orcal数据迁移到Sql Server的工作,本来一开始觉得很简单的一个问题。从orcal数据库中将数据读取出来,再写入到SqlServer中去,结果被原系统使用的Orcal的US7ASCII编码坑的残啊。读取出的中文数据一直是乱码问题。最终查询资料才发现Orcal的字符集编码通常很少用US7ASCII嘛,结果我非要去C# 的odbc读取数据,死磕了八个小时,由于初学C# 始终没有找到最优的解决方案。
最后在无奈之下,工作时间的限制下,只能使用Java的jdbc进行Orcal数据查询。最初使用传统的获取结果集的方法:
result.getNString("filedname")依旧中文乱码,然后使用result.getAsciiSteam("filedname")方法后成功的获取到了数据的Ascii码字符流,然后通过转换为GBK成功的解决了死磕八个小时的Orcal中文乱码问题。
因为本人的技术能力有限,目前仅发现一个办法,只能先读取出Ascii码流的形式再去转换解决乱码问题。欢迎大家指点交流。