ntpath join(path, *paths) 发生UnicodeDecodeError的Bug的解决方案

  最近在学习用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的解决方案

时间: 2024-10-11 10:50:17

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

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

网页开发要面对各种各样的浏览器,让人很头疼,而移动开发中,你不但要面对浏览器,还要面对各种版本的手机,iOS好一点,而安卓就五花八门了,你可能在开发中也被它们折磨过,或者正在被它们折磨,我在这里说几个我在开发中遇到的比较难缠问题,和解决方案,给其他朋友提个醒,因为一旦碰到了这些bug,虽然解决方法不难,但是你可能要花上几个小时,几天,甚至更长时间才能解决它们,遇到这些bug的话要注意,以后发现其他bug也会继续补充,也希望你也可以把你遇到的bug或者解决方案回复给我,我会一起补充到文章里,帮助其

关于cocos2dx程序的BUG调试解决方案

今天说一下手机游戏开发的调试问题吧.不得不说的是和PC平台游戏.软件开发相比,手机上开发游戏和软件要困难的多.原因是多方面的,比如说开发环境比较复杂,工具软件不够人性化等等. cocos2dx的出现解决了一个很大的问题,因为他是跨平台的,相对来说windows的软件开发环境比较友好,对中国程序员来说更熟悉.这样可以在windows进行日常开发和调试,然后在发布到其它平台的时候进行少量的处理就好了. cocos2dx程序的调试,在windows下和端游类似,可以在后台窗口进行打印,也可以直接在vs

Android之——常见Bug及其解决方案

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46942139 1.android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 解决方案:将getApplication改成xxxx.this 2.call you are unregister onbrocastRevicer?

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

我目前移动Web开发遇到的bug以及解决方案(慢慢补充当中). 1.android4.0以上一部分手机的webview中,当canvas小于屏幕大小时,绘图时会出现重影,就是说一个图只绘制了一遍,却出现了两个. 解决方案: canvas外层的div需要设定属性style="overflow:visible;-webkit-transform: translateZ(0)";

你不知的IE的bug及其解决方案

E令人咬牙切齿的bug不胜枚举,其中IE6更是臭名昭著,令人发指.这里总结出IE下最为严重的5个bug,及其应对方案. 1.IE6下无法显示png格式的透明信息 这个bug是众多网页设计师的噩梦,虽然可以采用gif代替,但是gif的表现力实在有限,单是阴影就无法完美显示了,这无疑给网页的表现力下了一个档次. 解决方案: img { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...); } 主要利用IE滤镜来解决png无法

python3 open txt的UnicodeDecodeError: &#39;gbk&#39; codec问题解决方案

一.使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. 二.需要导入import os 三.下面是逐行读取文件内容的三种方法: 1.第一种方法: [python] view plain copy f = open("foo.txt") # 返回一个文件对象 line = f.readline() # 调用文件的 readline()方法 while line: print line, # 后面跟 ',' 将忽略换

一个来自Afinal断点下载BUG的解决方案

欢迎各位加入我的Android开发群[257053751] 作为国内第一个Android开发框架Afinal,相信有很多开发者都知道的.虽然随着Android版本的迭代,其中有一些方法有了更好的解决办法作者也不再维护,但从来没有人怀疑Afinal的价值. 最近在重构KJFrameForAndroid框架的一个断点下载的功能,参考了比较多的例子,无意间发现了FinalHttp.download()方法中的一个BUG. 首先跟大家介绍一下afinal中download下载的实现原理.与其他众多下载方

SBCL x86 win32版本‘alien callback’的bug及解决方案

前言 SBCL win32版的官方发布版本,最近几个版本(从1.2.8到最新的1.2.13),一直存在一个很烦人的bug,在控制台界面输入Ctrl+C组合键时,SBCL就会异常退出.在SBCL里面,使用Ctrl+C本来可以中断/停止正在运行的程序. 我从1.2.11版本开始注意到有这个问题,在1.2.11之前我使用的1.2.7版本是正常的.现在发布了1.2.13问题仍然没有解决.Google了一下,原来也有人发现了这个问题,并且和SBCL的开发人员有过交流,不过没有找到问题原因.他们的讨论可以参

Mono2.0 对C#闭包 与 donet 不同的实现导致Unity的Bug 及解决方案

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn 因为项目中加载大量资源时造成卡顿,所以打算用异步协同来处理,但是却碰到自己难以理解的一个问题. 问题描述: 在 异步函数中 ,对界面上的 9 个按钮进行 onClick 设置匿名函数,函数使用Log 打印出当前的Button 的 Index .代码看起来没有问题,但是测试发现 点击所有按钮 都输出了 8 ,也就是说,虽然我在代码中重新创建了一个 int 值并赋值index的值,但是