//炬火不止,前进不息

[又双叒叕换域名了]解决因域名引起的 python 默认编码问题

分类在 全部计算机站点相关Python 0 评论

### 趁着放假,第三次换域名

这次注册的了

0x1.ink

先前的 cges.xyz 用了一段时间,还是觉得难受,可能是因为便宜吧 Orz

.ink 作为一个国际新通用顶级域名,注册数量与主流域名比起来要少很多,按注册局的信息看,从2014年出现到今天( 2020年5月1日 )也不过注册了 3.3 万个,拥有这样一个域名我想是很酷的,在各种 com,cn,net... 流行的今天,一定能让到访者耳目一新

至于为什么选择0x1,当然是因为万物基于 0 1 啊(大雾)o(*≧▽≦)ツ┏━┓

以后肯定不会再换域名的( 上次说的不算数 )
物色域名的时候想了不少组合,比如 0x55aa,0xff 等等等等,但要么被注册了,要么就是买不起或没有好的后缀
Godaddy 上注册 ink 域名对我来说真不便宜,跟阿里比较阿里实惠多了,从这点考虑,实名注册就实名注册吧,真香

注册完没多久碰上麻烦了

没有证书就用 Let's Encrypt ,当我运行 certbot 时就撞上 bug 了,certbot 把域名当成了16进制执行了,当然是要出错的,虽然早有意料却想不到来得这么快。

出错提示:
'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)

好在 certbot 是 python 程序,改变默认编码就可以了
用 which certbot 找到 certbot 可执行文件路径,在代码前面进行修改

import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
    reload(sys)
    sys.setdefaultencoding(defaultencoding)

或者修改 python 全局配置

vim /usr/lib/python2.7/site-packages/sitecustomize.py

( python2.7 ,不同环境位置可能有所差别,该文件一般进行新建 )

import sys
sys.setdefaultencoding('utf-8')
留言