• Scrapy使用cx_Oracle插入数据时中文乱码问题

    使用Python的爬虫框架Scrapy时  往往需要将爬到的数据保存到数据库

    而这边用的是Oracle,环境配置之类的网上很多这边就不赘述了

    编码中涉及中文时 python文件开头添加 ##coding=utf-8 是必不可少的

    乱码解决:

    Linux 环境下,设置环境变量

    NLS_LANG=AMERICAN_AMERICA.AL32UTF8

     

    同理Windows环境下 乱码也跟这个没有设置的环境变量有关,但是并不是这样解决的

    Windows主要是通过os 模块修改环境变量,解决参考代码如下

    ##coding=utf-8
    # Define your item pipelines here
    #
    # Don't forget to add your pipeline to the ITEM_PIPELINES setting
    # See: http://doc.scrapy.org/topics/item-pipeline.html
    import cx_Oracle
    import os
    os.environ['NLS_LANG']="AMERICAN_AMERICA.AL32UTF8"

     

    当然网络上也有 os.environ['NLSLANG'] = 'SIMPLIFIED CHINESECHINA.UTF8' 的配置方案,如有同样问题,就测测看吧:)

  • Yii 连接 Oracle 简记

    环境:win7 x64       wamp2.0f (集成php5.2.8)   Oracle11g
    步骤简记:首先确认环境配置是否正常
    开启php oci 相关扩展后  查看phpinfo(); 会有如下编译内容

    “–with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared”
    “–with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared”

    这个我们是无法修改的,需要去Oracle的官网下载相应的客户端文件,因为DBA那边使用的是Oracle11g版本,所以这边下载 了:instantclient-basic-windows.x64-11.2.0.3.0.zip以及instantclient-sdk- windows.x64-11.2.0.3.0.zip
    解压后将文件放置到需求对应的目录(没有的话需要手动建立,如本环境的目录为:D:\php-sdk\oracle\instantclient10\ )

    运行yii 框架下的requirements 查看 PDO Oracle extension 模块是否 通过 (若未通过说明client及sdk的版本不正确,可以尝试下载其他版本)

    环境检测ok之后,创建一个Yii webapp进行检测,如: php yiic.php webapp d:\wamp\www\oracletest
    修改 oracletest/protected/config/main.php 文件,添加Oracle数据库连接配置,如:
    ‘db_oracle’=>array(
    ‘class’ => ‘CDbConnection’,
    ‘connectionString’=>’oci:dbname=192.168.1.253:1521/TEST.COM’,
    ‘charset’=>’UTF8′,
    ‘username’=>’scott’,
    ‘password’=>’tiger’,
    ‘enableParamLogging’=>true,
    ),
    具体配置请参考DBA所提供的信息
    编写测试代码:这边直接修改自动创建的 SiteController中的actionIndex方法
    添加代码
    $query = “SELECT * FROM MYTABLE”;
    $t_results = Yii::app()->db_oracle->createCommand($query)->queryAll();
    print_r($t_results);
    刷新访问测试目录,即可正常显示相关信息。

    注意事项:
    测试Yii 使用Oracle之前
    请先使用相关软件,如 SQL Developer 、PLSQL Developer进行测试连接
    或使用PHP ocilogon 测试连接,确保系统及PHP所需的扩展均正常
    使用gii创建Oracle相关model时需要注意表名的大小写

click
©2010-2024 Jeen All Rights Reserved.Powered by emlog 京ICP备15058100号-1