从oracle导数据到mysql,oracle中的数据部分,插入时 显示Incorrect string value: '\xE6\xBB\x9A\xE5\x8A\xA8...' for column 'intro' at row 1。
比较有效的编码转换怎么实现呢,这种iconv ,mb_convert...都要字符参数。mb_detect_encoding检测也不准确,这个有什么办法呢?

解决方案 »

  1.   

    intro 是什么类型? 我看iconv就很好用了。
      

  2.   

    你的数据是 utf-8 的
    你的 oracle 是什么编码的?
      

  3.   

    oracle的是utf8,mysql DB也是utf8,但页面显示是GBK 
      

  4.   


    mb_detect_encoding检测时,后面的参数那个在前就显示是什么编码的  这个函数不靠谱啊 ...
      

  5.   

    我gbk是ORACLE的乱码 ,改成utf8时oracle数据显示正常这说明oracle也是UTF8呀。
      

  6.   

    但 \xE6\xBB\x9A\xE5\x8A\xA8 是utf-8编码的 滚动 两字连接 oracle 是你设置了字符集吗?
      

  7.   

    对对对 这个就是“滚动广告” 大概是,连接oracle的是时候,好像没有哎。php 连接时oracle 改编码也是oci_execute('set names utf-8') 吗..谢谢了  老大 
      

  8.   

    现在就需要把 $row = $db->fetch(),这个$row对象结果集给统一转成一种编码就行,求此方法,这是oracle里的数据。
      

  9.   


    //编码转换  
    public function convChar($row){
    foreach ($row as $key => $param)
    $data = mb_convert_encoding($key, 'utf-8',array('ASCII','GBK','GB2312'));
    return $data;
    }这样也不行....
      

  10.   

    你两个数据库的编码都是utf-8,那就不需要读取后再进行编码转换了
    1、操作页面是否是utf-8?
    2、访问oracle数据库,连接字符集要设置成UTF-8
    3、操作MYSQL数据库,同样。
      

  11.   

    楼主可以去参考radphp中的VCL代码的转编码方式,先把所有的码变成unicode编码的Cdata方式,然后再转成要显示的码