解决Python传递中文参数的问题

yipeiwu_com5年前Python基础

今天有个需要需要传递中文参数给URL

但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误。烦的很。

所以我们果断选择用urlencode来处理中文,

由于国内外网站编码不同,国内是GBK的,国外是UTF8的。

>>> import sys
>>> sys.stdin.encoding
'GBK'
表示我们的环境是GBK的
>>> import urllib
>>> urllib.quote('编码坑爹')   
'%B1%E0%C2%EB%BF%D3%B5%F9'

这样我就得到了GBK的url编码,用这个编码直接传递给URL就能直接解释出中文。不需要我们再处理了

>>> urllib.quote('编码坑爹'.decode('gbk').encode('utf-8'))
'%E7%BC%96%E7%A0%81%E5%9D%91%E7%88%B9'

这是UTF-8的URL编码
非常方便,解决另外困扰一天的问题。。。

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

python异常处理和日志处理方式

今天,总结一下最近编程使用的python异常处理和日志处理的感受,其实异常处理是程序编写时非常重要的一块,但是我一开始学的语言是C++,这门语言中没有强制要求使用try...catch语...

python3 读写文件换行符的方法

最近在处理文本文件时,遇到编码格式和换行符的问题。 基本上都是GBK 和 UTF-8 编码的文本文件,但是python3 中默认的都是按照 utf-8 来打开。用不正确的编码参数打开,在...

Python jieba库用法及实例解析

Python jieba库用法及实例解析

1、jieba库基本介绍 (1)、jieba库概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额...

Python Dataframe 指定多列去重、求差集的方法

1)去重 指定多列去重,这是在dataframe没有独一无二的字段作为PK(主键)时,需要指定多个字段一起作为该行的PK,在这种情况下对整体数据进行去重。 Attention:主要用到了...

docker django无法访问redis容器的解决方法

docker django无法访问redis容器的解决方法

docker-compose.yal文件中: redis: image: redis container_name: xdemo.redis ports: - 6...