资源下载站wordpress主题,WordPress问答插件路由,百度用户服务中心官网电话,自己开公司该楼层疑似违规已被系统折叠 隐藏此楼查看此楼3 楼的可以用 sys.getfilesystemencoding 检测#xff0c;但由於文件系统的差异#xff0c;文件名 100% 无损转还是不太可#xff0c;比如很多 *nix 的文件系统支持除 / 和 \0 外的所有字符#xff0c;而 win 下不可能4 楼的可…该楼层疑似违规已被系统折叠 隐藏此楼查看此楼3 楼的可以用 sys.getfilesystemencoding 检测但由於文件系统的差异文件名 100% 无损转还是不太可比如很多 *nix 的文件系统支持除 / 和 \0 外的所有字符而 win 下不可能4 楼的可以看 log当然最好的情况是设 logger设好以后是一劳永逸的看 request 和所用的 template 之类的可以使用 django debug toolbar1, 5 楼是典型的 encoding 问题文件名先撇开不说就说字符编码只要理清逻辑那麼类似的 ascii 无法 encode 的错误你就知道怎麼避免先说编码ascii 属於 7bit就算加上最高位也只能编码 256 个字符不说 cjk就光光所有欧洲语系都不够用於是就出现各种编码方案特别是 cjk 的如早期的 gb2312 和 big5嗯扯远了先拉回来简单的说目前常见的 cpython2 打包估计编译时多设了内部使用 ucs2 编码部分可能用 ucs4简单的说就是 cpython 内部处理嗯这个角度还是太远这麼说吧就是当你在外部输入字符串的时候如果有非 ascii 字符那麼是一定带有特定的编码方案的即所谓的 encoding比如你常用的 linux 下很可能是 utf-8那麼如果你要转换成其他编码方案比如 gtk需要先 decode然后再 encode比如在 utf-8 下的终端中的 repl s 中文 # u s.decode(utf-8) # s_gbk u.encode(gbk) # 只要理清了这个那麼上面的文件就知道怎麼处理了因为通常是概念没理清不知道什麼时候该用 encode什麼时候该用 decode 造成的。然后是文件名的编码问题了一开头说的可以找出本地文件系统默认编码但是各种方案对 unicode 全字符集的支持不一比如 gb2312 支持的就少早期 window 用的 cp932(这个数字具体记不清楚) 也少直接转 utf-8 通常还会出现问题必须过滤掉非法字符但这样又可能出现额外的重名现代的 windows 文件系统名字编码应该没问题了但是我太久没用过无法验证。这几天事情很多目前只能先草草说一下太乱了将就一些