• python编码问题


      最进编程,需要用到数据库,为了便于使用,数据库的名称需要使用中文,但是我在ulipad里面编程,却是无法实现,问题出在哪了?经过后来的分析,解决了这个问题,特此记录一下。

      在ulipad开发环境中,需要用户指定编码方式,如下:

      # coding= utf-8

      表示使用的是utf-8编码。但是在这种编码下,你在shell调试窗口时看不到中文字符的。如输入“我们”,在shell看到的肯定是xe6x88x91xe4xbbxac。

    如果要在shell窗口看到中文,需要将# coding= utf-8改为# coding= gbk即可。但是问题出现了,数据库一般默认的是utf-8编码,如果你设定为gbk编码

    则与数据库的不匹配,无法创建数据库表,因此遇到这种问题,该如何了?

      具体办法是使用编码转换,编码方式还是uft-8,但是对数据库的表的名称进行一次编码转换,然后在创建数据库,这样就可以实现用中文名称创建数据库,同时在数据库中看到的也是中文。关于编码转换需要说到两个函数,

      字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。 

      decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。 

      encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。 

      如你需要用“我们”来创建数据库,具体如下:

      str = “我们”

      TableNameTmp = str .decode('gbk')
      TableName = TableNameTmp.encode('utf-8')

    这样就可以满足了,create table TableName(id int);进入数据库,看到的就是已“我们”命名的数据库了。

  • 相关阅读:
    js命名空间笔记
    css3兼容性问题归纳
    flexbox-CSS3弹性盒模型flexbox完整版教程
    JavaScript 预解析
    消除页面上的链接虚线框
    图片压缩之 PNG
    常见的前端优化技巧有哪些
    for-of循环和for-in循环的区别
    函数式编程初探
    js中同步与异步处理方法
  • 原文地址:https://www.cnblogs.com/gaoshanxiaolu/p/3929739.html
Copyright © 2020-2023  润新知