PL/SQL DEV utf8乱码问题 utf8 bom
字符集信息:
数据库字符集:al32utf8
本地客户端字符集:utf8
plsqldev默认文件编码:utf8无bom --自己设置的,默认是自动识别
问题:
通过plsqldev导出某表数据为sql文件,通过plsqldev打开后,发现中文乱码。
分析:
首先用notepad++打开sql文件,无乱码,看了下文件字符编码,是utf8无bom。
而后检查了数据库字符集与本地oracle客户端字符集设置,均为utf8。
遂怀疑是plsqldev工具字符编码识别问题,将文件转换为utf8含bom,再用plsqldev打开,无乱码。
可目前utf8含bom格式放在unix、linux环境上容易出现问题,所以改文件编码的方案就放弃了。
偶然发现另一个同样是utf8无bom的sql文件用plsqldev打开没有乱码,遂比较下,发现后者第一条sql语句中含中文,而前者是在50条以后才含有中文。
会不会是plsqldev工具按中文出现的位置去识别utf8是否含bom?
测试下,把第一个sql文件中含中文的sql语句放到第一条,用plsqdev打开,果然,无乱码!
那么,含中文的sql语句只能放在第一行才能无乱码?
验证下,把含中文的sql放到第三行,无乱码;放到第10行,无乱码;放到第20行,乱码了。
有没有更简单的方式?emmm,给这个sql文件第一行加一个中文注释试试,结果ok,无乱码。
推测:
plsqldev打开utf8文件,以中文出现的位置来判断此文件是否含bom,即前n行或前n个字符内没有出现中文,则认为此文件为utf8含bom。
解决方案:
在utf8无bom格式文件第一行加个中文注释即可。
未结:
具体是以前n行还是以前n个字符作为判断条件,目前本人尚未验证,仅仅为推测。
- windows7下gvim打开UTF8无bom文件中文乱码问题的解决
- 使用java ucenter api(utf8)同步ucenter信息乱码问题
- python3.2打开utf8的txt文件时BOM问题的解决办法
- MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题以及error 1406:data too long for column 'name' at row 1
- utf8在IE6下中文乱码问题
- 关于php文件使用utf8编码后乱码的问题。
- php fwrite写入文件bom头导致的乱码问题解决
- 处理linux下面的mysql乱码问题(下面的utf8换成gb2312也是可以的)
- 02第一个HTML剖析(声明字符集,utf8乱码问题)
- php中隐形字符65279(utf-8的BOM头)问题和fwrite写入文件bom头导致的乱码问题解决
- 【转贴】Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- python3.2打开utf8的txt文件时BOM问题的解决办法
- php(utf8)跨站到asp(gb2312)乱码问题
- MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题
- MySQL终极配置解决UTF8编码出现的乱码问题
- UTF8解决乱码问题,springmvc 这个需要版本4.0以上
- PHP环境下utf8乱码的解决方法---apache,php配置问题
- 02第一个HTML剖析(声明字符集,utf8乱码问题)
- 在utf8编码下,alert对话框乱码问题
- php fwrite写入文件bom头导致的乱码问题解决