当前位置:文档之家› php+mysql+oracle乱码解决

php+mysql+oracle乱码解决

解决数据库编码问题

问题描述:
用PHP从oracle数据库中提取数据,导入mysql数据库,oracle是US7ASCII,mysql是UTF-8,如何才能避免乱码?

知识点:
原因:首先乱码出现可能在三个环节出现:一是从oracle数据库提取出来的时候;二是在网页上显示的时候;三是写进mysql数据库的时候。

解决:
根据这三个环节,制定解决办法:
第一,提取出来的时候不能有乱码。
使用OCI_CONNECT('用户名','密码','数据库','字符集'),字符集参数必须和oracle数据库的字符集一致
查看oracle数据库字符集命令:
SELECT * FROM v$nls_parameters ----里面有个NLS_CHARACTERSET项目,这就是oracle的字符集

第二,在网页上显示
首先,可以用mb_detect_encoding(检测的字符串,array('UTF-8','GB2312','GBK','BIG5','ASCII'……等等字符集)),这个函数返回当前字符串使用的字符集名称;
然后,用iconv('原字符集','目标字符集','要转换的字符串'),这样将字符串转换后显示,就不会有乱码了
另外,要注意的是,你的PHP文件的编码,网页的编码,必须和这个转换了的编码一致,就是三码一致。

第三,写入mysql数据库
首先,使用命令
$sql='set name utf8';
mysql_query($sql,$conn)
其中$conn是建立的对mysql的连接
这样设置好数据库的连接编码
然后,在插入的时候,将字符串字段用第二步的iconv进行转码

通过上面这些步骤,就解决了乱码的问题。感觉是,编程的话,必须动手,要敢于一个问题一个问题地突破,不要一个问题没有弄好,又去搞下一个问题。有了一个突破以后,才能扩大到其他地方。

对上面的内容,对学习软件,如果,大家有更好的建议,请多多指教。qq:2544882










相关主题
文本预览
相关文档 最新文档