标签 Python 下的文章

Python中的字符串编码是一个很让初学者费解头疼的问题,特别是遇到中文时相关处理经常抛出Exception。字符串到底以什么编码在Python内部进行处理,Python2.x中文编码如何安全的转换,Python 2.x与Python 3.x在编码方面的区别?本文接下来会一一进行讲解。

logo-python.png

1、字符串在Python内部的编码
在Python内部字符串都是以unicode编码进行处理,即源码文件中的字符串首先都会被decode成unicode编码的字符串,之后Python内部再进行处理,用代码显示表示如下:

unicode_str = input_str.decode('utf8')

以上是将uft8编码的字符串input_str转换为unicode,decode成功的前提是你得知道input_str的原始编码,比如这里是utf8,否则会抛出UnicodeDecodeError的异常。

2、Python源码字符串的编码
Python 2.x的默认编码格式是ascii,字符串在转换前均会decode成unicode。初学Python大家可能会编写如下的代码:

#!/usr/bin/python
s = '你好'
print s

会出现下面的异常:

SyntaxError: Non-ASCII character '\xe4'

这个是因为错误的将utf8编码的中文当成ascii解码。解决方法也很常规:在Python源码文件中声明编码格式,最常见的声明方式如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

- 阅读剩余部分 -

最近微软的How-Old刷爆了朋友圈,这是一次学术研究与日常生活的结合。实际上还有许多研究与我们密切相关,比如我的研究方向——图像运动复原,可以将该技术应用于相机抖动图像的恢复。然而PC端软件日趋衰落,移动端使用量逐步增长,由于手机处理能力有限,而图像恢复技术需要很大的CPU与内存资源,将该算法部署在云端,所有处理都在云端进行,手机负责传输图像,那么该问题轻松解决。

实施方案:
(1)核心算法:C/C++实现,支持GPU加速,性能指标:10s内处理5000*5000分辨率图像;
(2)交互设计:WEB方式,接收、返回处理结果,实施技术JSP或Python

项目架构:
(1)WEB(Python OR JSP)作为前台访问,底层使用C/C++实现核心算法;
(2)考虑到移动设备处理能力有限,软件维护的代价,以web/host方式较为合理;
(3)后期考虑开发API接口;

技术细节:
(1)流量成本:移动端图像高质量压缩,再减少流量传输同时,尽量保存图像细节;
(2)项目部署:云端