使用英文版SQL数据库查询到的汉字字段是乱码的解决方案

2007-12-04 14:55:45

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fengyp.blog.51cto.com/276754/53456
我在使用数据库查询语句时,出现了乱码,为了解决这个问题,我花费了不少时间,现将解决办法贴出来,供大家参考。
一、在查询分析器中出现的乱码
这类问题比较好解决,主要是由于查询分析器的工具菜单中的选项栏中连接项中的“执行字符串转换”被打了勾,将勾去掉即可。 
二、在ASP.NET(C#)中出现乱码
一开始我在编写网页程序的时候也出现了查询英文数据库的时候,汉字是乱码的问题,经查,原来是使用了下列语句造成的:
SqlConnection smycn = new SqlConnection(con(cn));
后来我仿造在VB中的解决此问题的方法,改成用下列语句连接数据库,问题得到了解决:
OleDbConnection omycn = new OleDbConnection(con(cn));
三、在SQL函数中出现乱码
SQL函数中乱码是将汉字写入临时表的时候产生的,使用上面的方法解决不了。
我的方法是改变SQL函数中汉字字段的排序方法。下面贴出的是有问题的函数:
CREATE FUNCTION [dbo].[OA提料] (@item varchar(3),@ms varchar(3)) 
RETURNS  @OA  table
(订单号 varchar(25),行号 varchar(3),物料号 varchar(25),物料描述 varchar(35)
,计划数 float,开工日期 smalldatetime,完工日期 smalldatetime,已领料数 float)
as
BEGIN
if (@ms='')
if (len(@item)=2)
begin
insert @OA 
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,rtrim(Mfg_ITMMAST.IMDESC)   物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),4),2)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),rtrim(Mfg_ITMMAST.IMDESC) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,rtrim(Mfg_ITMMAST.IMDESC)     物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),5),3)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),rtrim(Mfg_ITMMAST.IMDESC) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
if (len(@item)=2)
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,rtrim(Mfg_ITMMAST.IMDESC)     物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),4),2)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
       and case when len(@ms)=2 then right(left(Mfg_MS.MSCOMPNO,4),2) else right(left(Mfg_MS.MSCOMPNO,5),3) end=@ms
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),rtrim(Mfg_ITMMAST.IMDESC),Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,rtrim(Mfg_ITMMAST.IMDESC)    物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),5),3)=@item
       and case when len(@ms)=2 then right(left(Mfg_MS.MSCOMPNO,4),2) else right(left(Mfg_MS.MSCOMPNO,5),3) end=@ms
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),rtrim(Mfg_ITMMAST.IMDESC) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
return
end
下面贴出的没有问题的函数:
CREATE FUNCTION [dbo].[OA提料] (@item varchar(3),@ms varchar(3)) 
RETURNS  @OA  table
(订单号 varchar(25),行号 varchar(3),物料号 varchar(25),物料描述 varchar(35) collate SQL_Latin1_General_CP1_CI_AI
,计划数 float,开工日期 smalldatetime,完工日期 smalldatetime,已领料数 float)
as
BEGIN
 
if (@ms='')
if (len(@item)=2)
begin
insert @OA 
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35))    物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),4),2)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35)) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35))     物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),5),3)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35)) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
 
end
else
if (len(@item)=2)
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35))      物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),4),2)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
       and case when len(@ms)=2 then right(left(Mfg_MS.MSCOMPNO,4),2) else right(left(Mfg_MS.MSCOMPNO,5),3) end=@ms
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35)) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35))      物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),5),3)=@item
       and case when len(@ms)=2 then right(left(Mfg_MS.MSCOMPNO,4),2) else right(left(Mfg_MS.MSCOMPNO,5),3) end=@ms
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35)) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
return
end
红字的内容是没有乱码的函数和有乱码的函数的区别之所在。由于公司有各种各样的数据库,有些数据库会产生乱码,有些数据库不会产生乱码,那么只要看一下产生乱码的数据库的排序规则和不产生乱码的数据库的排序规则,然后将在会产生乱码的数据库中临时表的有汉字内容的字段的排序规则转换成不产生乱码的数据库的排序规则即可。如果没有办法比较,则需要对各种排序规则进行一一测试,总能找到一条规则符合要求。

本文出自 “风雨同舟” 博客,请务必保留此出处http://fengyp.blog.51cto.com/276754/53456

[转]SQL数据库查询到的汉字字段是乱码的更多相关文章

  1. 通过sql语句查询出来的结果字段没有到对应实体类时的处理方法

    通过sql语句查询出来的结果字段没有到对应实体类时的处理方法,对于Person类获取用户第一个名字和年龄两个字段,常见的有两种方式: 1.在创建一个与查询结果字段对应的类,然后通过构造函数实现: Qu ...

  2. sql数据库查询结果字段包含换行符导致复制到Excel发生错位问题的解决

    问题描述:在工作过程中,有时会遇到这样的问题,写好sql查询语句在数据库中查询数据,看到行数(比如说是1000行),但是把查询结果复制到Excel里面,却发生了行列错位问题,而导致Excel里面的行数 ...

  3. NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc limit ?,20;出现

    异常:类型不匹配 05-06 08:12:38.151: E/AndroidRuntime(14904): java.lang.NumberFormatException: Invalid int: ...

  4. SQL数据库查询一列数据返回一行

    SQL:数据库合并列数据:遇到一个更新的问题 想要把查询到的数据某一列拼接成字符串形式返回用的是SQL数据库中的STUFF函数比如 查询到的表(u_College)如下Id Name Age Clas ...

  5. 几种常见数据库查询判断表和字段是否存在sql

    1.MSSQL Server    表:select COUNT(*) from dbo.sysobjectsWHEREname= 'table_name':  字段:select COUNT(*)  ...

  6. SQL数据库查询出一张表中重复的数据,按某个字段来查找。

    例如表名为Course 需要查询出name重复的有那些??? 解答如下: 补充: 如:查询每个姓名出现大于2次,SQL如下 SELECT COUNT(NAME) as '出现次数',  NAME FR ...

  7. SQL数据库查询一张表新建一个排序字段并根据某列的排序存储排序值

    现在有一张表如下Id Name Age Classify Score1 张一 18 一班 122 张二 17 二班 19 3 张三 19 三班 30 我跟据他们的分数进行排名 再去新建一个列存储排序值 ...

  8. SQL数据库查询练习题(更正版)

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  9. SQL数据库查询练习题

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

随机推荐

  1. GinKgoCTF-Misc

    一:谁动了我的校徽? Jpg改txt——>寻找——>GKCTF{This_is_a_huaji} 二:奇怪的压缩包1 六位数字的密码一点也不安全!!!!!! 下载压缩包——>有密码( ...

  2. What is the $ symbol used for in JavaScript

    It doesn't mean anything special. But because $ is allowed in identifier names, many Javascript libr ...

  3. Go Example--变量

    package main import "fmt" //通过import导入fmt标准包 func main() { //定义变量,并初始化 var a string = &quo ...

  4. skipper lua 脚本支持

    skipper 对于lua 脚本的支持是通过gopher-lua,支持基本上大部分的lua特性 说明:项目使用docker-compose 运行 环境准备 docker-compose 文件 vers ...

  5. 让Windows XP的键盘“说话”,全语音键盘

    长期面对无声的电脑,我们难免疲倦.如果正在输入的内容被系统一字(字母)不差地念出来,你还能在无声的疲倦中输入错误的内容吗?本文以Windows 2000/XP中一个鲜为人知的“讲述人”为例,来教你DI ...

  6. C#中Socket关闭 Close、Dispose、Shutdown、Disconnect

    An answer on StackOverflow made me think I have finally reached some glimpse of an understanding. Th ...

  7. 我发起了一个 .Net 平台上的 开源项目 知识图谱 Babana Map 和 文本文件搜索引擎 Babana Search

    起因 也是 前几天 有 网友 在 群 里发了   知识图谱   相关的文章, 还有 有 网友 问起   NLog -> LogStash -> Elastic Search  的 问题, ...

  8. ZeroTier One

    ZeroTier – 无配置,零基础「内网穿透」随时随地连回家/学校/办公室 [跨平台] https://www.appinn.com/zerotier-one/ Virtual NetworkZer ...

  9. [转]MyBatis中resultType与resultMap区别

    MyBatis中关于resultType和resultMap的具体区别如下: MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap.resu ...

  10. python2核心类库:urllib、urllib2的区别和使用

    urllib/urllib2都是接受URL请求的相关模块区别:1.urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL.这意味着,你不可以伪装 ...