一.UTF8字符集csv文件在oracle下乱码问题处理
1.问题描述
在excel中生成了一个UTF-8编码格式的csv文件准备导入数据库,在notpad++下打开显示正常,编码集为UTF-8,通过pl/sql dev导入oracle是出现乱码,此时初步推断oracle字符集与本地操作不同导致的乱码
2.处理过程
2.1 查看ORACLE字符编码集
select userenv('language') from dual;
此时oracle返回其字符编码为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2.2 添加操作系统对象字符编码系统变量
在win10中添加如下系统变量
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2.3 更改文件字符集
2.3.1 excle
从excle导出的csv文件只能直接导出为utf-8格式,暂未发现有其他方法可以直接导出其他字符编码类型的csv文件
2.3.2 notpad++
在notpad++中直接通过编码->转换为GB2312(notpad++没有gbk,gbk是GB2312的超集),结果文件出现乱码,此方法不可行;
在notpad++中新建一个空文件,将其字符编码集变为gb2312,再将原来csv文件的内容复制过来,发现没有出现乱码,且字符编码集设置成功
2.3.3 sublime
使用sublime 安装ConvertToUTF8 插件可以实现编码集转换
安装过程:ctr+shift+p打开完成搜索框,输入install package 打开可安装插件列表界面,在此界面输入ConvertToUTF8 可直接安装该插件
使用方法:打开UTF编码集的csv文件,点击file->relaod with encoding,在其中选择目标字符编码,这里我们选中gbk,点击之后,文件已转化为gbk编码,再保存即可
2.3.4 java编写工具类
1 public void codeChange() throws IOException {
2 String sourceCharset = "utf8"; // 源文件编码
3 String targetCharset = "gbk"; // 目标文件编码
4 String newFileName=path.substring(0,path.lastIndexOf("."))+"_"+1+".csv";
5 File file =new File(path);//源文件
6 FileInputStream fileInputStream=new FileInputStream(file);
7 InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream,sourceCharset);
8 BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
9 File targetFile =new File(newFileName);//目标文件
10 BufferedWriter bufferedWriter=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetFile),targetCharset));
11 String line=null;
12 while((line=bufferedReader.readLine())!=null){
13 bufferedWriter.write(line);
14 bufferedWriter.newLine();
15 bufferedWriter.flush();
16 }
17 bufferedWriter.close();
18 bufferedReader.close();
19 }
复制代码
2.4 注意事项
2.4.1 在利用notpad++或sublime更改字符集时,最好先对文件进行备份,因为 编码转化可能是不可逆过程
2.4.2 一般遇到字符编码不统一,修改一方即可,这里我们选择修改操作系统的是因为避免对其他文件造成影响,也可以选择修改oracle的字符编码集,但是对数据库中其他数据会造成影响(编辑:雷林鹏 来源:网络)
一.UTF8字符集csv文件在oracle下乱码问题处理的更多相关文章
- 1.UTF8字符集csv文件在oracle下乱码问题处理
1.问题描述 在excel中生成了一个UTF-8编码格式的csv文件准备导入数据库,在notpad++下打开显示正常,编码集为UTF-8,通过pl/sql dev导入oracle是出现乱码,此时初步推 ...
- 如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE字符开头.这作为一个”特征符”或”字节顺序标记(byte-o ...
- 解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG
解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6 ...
- Excel 2007 打开 UTF-8 编码 CSV 文件的乱码BUG
http://blog.sina.com.cn/s/blog_6c3b65fd01018dgq.html 打开UTF-8编码的CSV方法: 1) 打开Excel 2007 2) 执行“数据”-> ...
- Jmeter读取CSV文件,请求参数乱码
Jmeter读取CSV文件,请求参数乱码 1.修改本地配置文件,jmeter.properties,修改以下配置项 sampleresult.default.encoding=UTF-8 重启Jmet ...
- python输出excel能够识别的utf-8格式csv文件
http://blog.csdn.net/azhao_dn/article/details/16989777 可能大家都遇到过,python在输出的csv文件中如果有utf-8格式的中文,那么在使用e ...
- 解决Excel打开UTF-8编码CSV文件乱码的问题
打开 Excel,执行“数据”->“自文本”,选择 CSV 文件,出现文本导入向导,选择“分隔符号”,下一步,勾选“逗号”,去掉“ Tab 键”,下一步,完成,在“导入数据”对话框里,直接点确定 ...
- Mysql 导入CSV文件,中文内容乱码问题
项目中用到含有中文字段的数据CSV文件,导入Mysql数据中发现中文内容乱码. 分析原因:因为数据库字符编码问题引起. [1]创建utf-8字符集数据库 CREATE DATABASE db_name ...
- php 生成读取csv文件并解决中文乱码
csv其实是文本文件,但是里面的内容是利用逗号分隔的. 1. 生成csv文件 function new_csv($arr) { $string=""; foreach ($arr ...
随机推荐
- Redis高级进阶
目录 本章目标 Redis配置文件 Redis存储 Redis事务 Redis发布订阅 Redis安全 本章目标 Redis配置文件 Redis的存储 Redis的事务 Redis发布订阅 Redis ...
- 国外DNS服务器总结
国外12个免费的DNS DNS(即Domain Name System,域名系统),是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够让用户更方便的访问互联网,而不用去记住能够被机器直接读取 ...
- Augmented reality in natural scenes
Augmented reality in natural scenes (Iryna Gordon and David Lowe)2006年关于AR的研究成果 项目主页 http://www.cs.u ...
- Linux下批量管理工具pssh使用记录
pssh是一款开源的软件,使用python实现,用于批量ssh操作大批量机器:pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的:比起for循环的做法,我更推荐使用 ...
- scrapy爬虫系列之开头--scrapy知识点
介绍:Scrapy是一个为了爬取网站数据.提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速抓取.Scrapy使用了Twisted异步网络框架,可以加快我们的下载速度. 0.说明: ...
- 使用wireshark分析TLS
1.基本概念 SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层.SSL通过互相认证.使用数字签名确保完整性.使用加密确保私密 ...
- 让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求 The serverRuntime@appConcurrentRequestLimit setting is being exceeded.
今天下午17点左右,博客园博客站点出现这样的错误信息: Error Summary: HTTP Error 503.2 - Service UnavailableThe serverRuntime@a ...
- postman:模拟发送一个需要cookie认证的请求
1.chrome 已安装插件intercept. 由于chrome安全的限制,发不出带cookie的请求.如果想要发送带cookie的请求,需要开启Interceptor. 2.chrome 浏览器要 ...
- AbstractQueuedSynchronizer,Lock,Synchronized
Lock和Synchronized的区别 Lock实现了与synchronized相同的互斥性和内存可见性. synchronized代码简单,并且与处理异常操作实现了很好的交互. synchroni ...
- Ambari Rest api 使用
最近由于项目的需要在看一些Ambari的api去获取集群的一些信息,获取集群节点的状态信息以及各个服务和组件的信息.然后在我们的数据服务管理平台上去做一些监控运维,现在把一些使用总结一下:官网rest ...