一.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 ...
随机推荐
- 洛谷P2444 病毒【AC自动机】
题目描述 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码.如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的.现在委员会已经找出了所有的病毒代码段,试问,是否 ...
- Python开发【Django】:日志记录、API认证
日志记录: 调用同一个对象,分别记录错误日志和运行日志 自定义日志类: class Logger(object): __instance = None def __init__(self): self ...
- 【selenium】selenium ide的安装过程
简介一:SeleniumIDE安装 1.安装seleniumIDE,打开火狐浏览器,地址栏输入地址—>点击Add按钮—>安装结束后重启FireFox—>在菜单栏中可以看到Seleni ...
- 【查看】mysql 常规书写注意事项(那些坑)
mysql 常规书写注意事项,mysql注意事项 1. 注释: -- 后面一定要加一个空格,否则会报错 2.注释:/*! content */ 在mysql中是会执行的,但是其他数据库不会. 例 ...
- 每日算法之三十五:Wildcard Matching
模式匹配的实现,'?'代表单一字符,'*'代表随意多的字符.写代码实现两个字符串是否匹配. Implement wildcard pattern matching with support for ' ...
- SQL Server 不同网段IP通过名称访问
1, 设置订阅服务器C:\Windows\System32\drivers\etc目录的host文件,添加分发服务器(我的环境是发布服务器与分发服务器 是一起的,所以这里指定的是发布服务器的地址)信息 ...
- C#知识点备忘
1.结构体不能用判断符号==判断是否为null,结构体是值类型,不论采用new与否,结构体中的值类型都已经赋了初值. 2.整数相除: a=; b=: c=a/b; 结果c= 如果想得到double型需 ...
- 用Python实现的数据结构与算法:双端队列
一.概述 双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的线性数据结构.双端队列也拥有两端:队首(front).队尾(rear),但与队列不同的是,插入操作在两 ...
- HTML5开发——轻量级JSON存储解决方案Lawnchair.js
Lawnchair是一个轻量级的移动应用程序数据持久化存储方案,同时也是客户端JSON文档存储方法,优点是短小,语法简洁,扩展性比较好. 现在做HTML5移动应用除了LocalStorage的兼容性比 ...
- 3.6 Templates -- Binding Element Class Names(绑定元素类名)
1. 一个HTML元素的class属性可以像其他属性一样被绑定: <div class={{priority}}> Warning! </div> 生成的HTML <di ...