在SQLPLUS中执行SQL文件时发生错误:ORA-01756: quoted string not properly terminated
但是SQL其实是没有问题的,找了很多原因,发现可能是由于使用TOAD导出SQL insert语句,编码集的问题导致的。
首先在.bash_profile文件中添加环境变量指定编码集:
export NLS_LANG=American_America.AL32UTF8
但是这样做了还是不行,后来找到了解决方法:
使用类似Notepad++之类的文本编辑器将SQL文件的编码转换为 UTF-8无BOM编码格式
结果试下来就没有问题了。
2.BOM: Byte Order Mark
UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行,
3.
PHP文件的编码格式是UTF-8,而且是无BOM格式,如果编写PHP文件时用错编码,则输出尤其是中文会出现乱码。Windows自带的记事本默认是ANSI编码格式,另存时可将编码改成UTF-8,但不是无BOM格式,也是无法正确输出的。
WordPress在编写主题和插件的PHP代码文件时,一定要要遵循这个规定,专业的CODE编辑器可以解决编码问题。
在用Notepad++编写的php文件时,首先请将字符集设置正确,方法是点击菜单“格式→以UTF-8无BOM格式编码”。设置完成后,再编辑代码,保存时就自动设为UTF-8 无BOM 编码。以后再打开此文件无需再次设定。