最近在学习用Python开发web,使用的是web框架,在win8.1平台下安装SAE和Flask的时候总是在ntpath.py这个UnicodeDecodeError模块报错。

84行 result_path = result_path+ p_path

  显示的错误就是UnicodeDecodeError ascii/unicode can not decode 0xc3 range 128的错误。在安装SAE的时候也遇到这个错误了,找到错误的原因是我的User名是中文,中文unicode码是\xc3\xf8。

  Unicode码encode的时候把这个路径名强制认为是两个ascii码,不能超过128所以导致了这个错误。

  这时候我想使用unicode()强制将两个字符串转为unicode也可不可以呢,还是不行,因为unicode()的操作是将ascill扩展为unicode码,同样会验证是否是有效的asill码,还是报了UnicodeDecodeError的错误unicode can not decode 0xc3 range 128。

  result_path = unicode(result_path) + unicode(p_path)

  这时候我就想到怎么不让它验证呢,试了下str()这个函数将两个码全都转为str类型

  result_path = str(result_path) + str(p_path)

  这个时候错误就没有出现,工作正常,因为将unicode码转为str类型不会验证ascill码,而是会将其转为两个八位的char(只是说法,py没有char类型)

  

  >>> a='你好'
  >>> a[0]
  '\xc4'

  >>> a
  '\xc4\xe3\xba\xc3'
  >>> type(a)
  <type 'str'>

  在遇到unicode码和str型合并操作的时候可以强制都转为str型进行合并就没有类似的错误了。

  解决方式就是在C:\Python27\Lib\ntpath.py 打开将84行result_path = result_path+ p_path替换为result_path = str(result_path) + str(p_path)

ntpath join(path, *paths) 发生UnicodeDecodeError的Bug的解决方案的更多相关文章

  1. JAVA NIO学习四:Path&Paths&Files 学习

    今天我们将学习NIO 的最后一章,前面大部分涉及IO 和 NIO 的知识都已经讲过了,那么本章将要讲解的是关于Path 以及Paths 和 Files 相关的知识点,以对前面知识点的补充,好了言归正传 ...

  2. JAVA基础知识之NIO.2——Path,Paths,Files

    NIO.2 JDK7对NIO进行了重大改进,主要包含以下两方面 新增Path接口,Paths工具类,Files工具类. 这些接口和工具类对NIO中的功能进行了高度封装,大大简化了文件系统的IO编程. ...

  3. J2SE 8的输入输出--Path/Paths File/Files; FileSystems 类的用法

    Path的简单用法 //1. Path 正常用法 Path path = Paths.get("src/main/resource/zip"); logger.debug(path ...

  4. NIO.2中Path,Paths,Files类的使用

    Java NIO Java NIO概述 Java NIO(New IO(新io),Non-Blocking IO(非阻塞的io))是从Java 1.4版本开始引入的一套新的IO API,可以替代标准的 ...

  5. 转:移动开发中一些bug及解决方案

    网页开发要面对各种各样的浏览器,让人很头疼,而移动开发中,你不但要面对浏览器,还要面对各种版本的手机,iOS好一点,而安卓就五花八门了,你可能在开发中也被它们折磨过,或者正在被它们折磨,我在这里说几个 ...

  6. python3 open txt的UnicodeDecodeError: 'gbk' codec问题解决方案

    python3 open txt的UnicodeDecodeError: 'gbk' codec问题解决方案先直截了当给出解决方案,在程序开头加上:import _locale_locale._get ...

  7. 移动Web开发的bug及解决方案

    我目前移动Web开发遇到的bug以及解决方案(慢慢补充当中). 1.android4.0以上一部分手机的webview中,当canvas小于屏幕大小时,绘图时会出现重影,就是说一个图只绘制了一遍,却出 ...

  8. MySQL中char(36)被认为是GUID导致的BUG及解决方案

    MySQL中char(36)被认为是GUID导致的BUG及解决方案 有时候在使用Toad或在程序中,偶尔会遇到如下的错误: System.FormatException GUID 应包含带 4 个短划 ...

  9. [转]rpcndr.h和wtypes.h冲突Bug的解决方案

    [转]rpcndr.h和wtypes.h冲突Bug的解决方案 http://blog.csdn.net/tzwh_86/article/details/9495133 rpcndr.h和wtypes. ...

随机推荐

  1. Office在线预览及PDF在线预览的实现方式史上最全大集合

    Office在线预览及PDF在线预览的实现方式大集合 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPD ...

  2. Ajax交互demo1

    一.概念 Ajax异步请求刷新. 浏览器在用户不知道的情况下,偷偷地跟服务器交互,然后返回数据给浏览器显示. 异步过程:当HTTP请求发送后,通过Ajax技术使用的XMLHttpRequest对象来发 ...

  3. 用CSS border相关属性画三角形

    效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2l3aV9jb2Rlcg==/font/5a6L5L2T/fontsize/400/fill/I0J ...

  4. Linux系统下UDP发送和接收广播消息小样例

    [cpp] view plaincopy // 发送端 #include <iostream> #include <stdio.h> #include <sys/sock ...

  5. WPF组件开发

    在做组件之前,为了适应框架,我们需要有一个基类,并将这个基类打包成一个模板,让大部分组件去使用这个模板. 组件的基类就不多讲了,上篇文章中已经说过了.这是地址: http://www.cnblogs. ...

  6. 获取IMEI码

    核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getDeviceId(); 1.加入权限 在manifes ...

  7. windows 进程间通讯方法

    Windows平台为我们提供了多种进程间通信的机制,主要包括:注册表方式.共享文件方式.共享内存方式.共享数据段.映射文件方式.管道方式. 剪贴板方式.消息方式.其中注册表方式需要增加注册表表项,而注 ...

  8. switch vpn 配置

  9. linux+apache+mod_Jk+tomcat实现tomcat集群

    最近一段时间一直在研究实现apache + jk_mod + tomcat实现负载均衡,起初负载均衡算是配置蛮顺利的,但是到了配置tomcat集群时所有配置都没有问题,但是tomcat日志中一直提示没 ...

  10. step2 uboot tag存储主要部分代码

      cmd_bootm.c //传递给内核的参数      int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])     ...