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. 1.UTF8字符集csv文件在oracle下乱码问题处理

    1.问题描述 在excel中生成了一个UTF-8编码格式的csv文件准备导入数据库,在notpad++下打开显示正常,编码集为UTF-8,通过pl/sql dev导入oracle是出现乱码,此时初步推 ...

  2. 如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题

    为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE字符开头.这作为一个”特征符”或”字节顺序标记(byte-o ...

  3. 解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG

    解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6 ...

  4. Excel 2007 打开 UTF-8 编码 CSV 文件的乱码BUG

    http://blog.sina.com.cn/s/blog_6c3b65fd01018dgq.html 打开UTF-8编码的CSV方法: 1) 打开Excel 2007 2) 执行“数据”-> ...

  5. Jmeter读取CSV文件,请求参数乱码

    Jmeter读取CSV文件,请求参数乱码 1.修改本地配置文件,jmeter.properties,修改以下配置项 sampleresult.default.encoding=UTF-8 重启Jmet ...

  6. python输出excel能够识别的utf-8格式csv文件

    http://blog.csdn.net/azhao_dn/article/details/16989777 可能大家都遇到过,python在输出的csv文件中如果有utf-8格式的中文,那么在使用e ...

  7. 解决Excel打开UTF-8编码CSV文件乱码的问题

    打开 Excel,执行“数据”->“自文本”,选择 CSV 文件,出现文本导入向导,选择“分隔符号”,下一步,勾选“逗号”,去掉“ Tab 键”,下一步,完成,在“导入数据”对话框里,直接点确定 ...

  8. Mysql 导入CSV文件,中文内容乱码问题

    项目中用到含有中文字段的数据CSV文件,导入Mysql数据中发现中文内容乱码. 分析原因:因为数据库字符编码问题引起. [1]创建utf-8字符集数据库 CREATE DATABASE db_name ...

  9. php 生成读取csv文件并解决中文乱码

    csv其实是文本文件,但是里面的内容是利用逗号分隔的. 1. 生成csv文件 function new_csv($arr) { $string=""; foreach ($arr ...

随机推荐

  1. Publish over SSH插件安装

    1 Publish over SSH插件安装 打开Jenkins的“系统管理>管理插件”,选择“可选插件”,在输入框中输入“Publish over SSH”进行搜索,如果搜索不到可以在“已安装 ...

  2. js数组转成对象

    $scope.addalerts = []; $scope.addalertsString = JSON.stringify($scope.addalerts); 全部教程http://each.si ...

  3. 公民身份号码校验码算法(C#版)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. ZOJ 3469Food Delivery(区间DP)

    Food Delivery Time Limit: 2 Seconds      Memory Limit: 65536 KB When we are focusing on solving prob ...

  5. python调用C++之pybind11入门(相互调用)

    python调用C/C++有不少的方法,如boost.python, swig, ctypes, pybind11等,这些方法有繁有简,而pybind11的优点是对C++ 11支持很好,API比较简单 ...

  6. linux彻底删除nginx

    卸载 删除 nginx 1.删除nginx,–purge包括配置文件 sudo apt-get --purge remove nginx 1 2.自动移除全部不使用的软件包 sudo apt-get ...

  7. Python 读取写入配置文件 —— ConfigParser

    Python 读取写入配置文件 —— ConfigParser Python 读取写入配置文件很方便,可使用内置的 configparser 模块:可查看源码,如博主本机地址: “C:/python2 ...

  8. Selenium IDE的一些操作

    1.运行速度过快时,可能出现找不到元素的情况,影响运行结果,将速度调慢慢一些,就可以运行成功. 如果为其他情况找不到元素,则需要另外找原因,有可能元素定位有问题,有可能无该元素. 2.导出录制的脚本为 ...

  9. mysql key index区别

    看似有差不多的作用,加了Key的表与建立了Index的表,都可以进行快速的数据查询.他们之间的区别在于处于不同的层面上. Key即键值,是关系模型理论中的一部份,比如有主键(Primary Key), ...

  10. docker——网络配置

    一.网络启动与配置参数 Docker启动时会在主机上自动创建一个docker0虚拟网桥,实际上是一个Linux网桥,可以理解为一个软件交换机,它会在挂载其上的接口之间进行数据转发.同时,Docker随 ...