标签: encoding

在Django中,为什么我会遇到utf-8编码字符串的问题?

我是德国开发人员,为德国人编写Web应用程序,这意味着我无论如何都不能依赖纯ASCII编码.至少必须支持像ä,ö,ü,ß这样的字符.

幸运的是,Django默认将ByteStrings视为utf-8编码(如文档中所述).所以它应该工作,如果我将# -*- coding: utf-8 -*-行添加到每个.py文件的开头并设置编辑器编码,不应该吗?好吧,它大部分时间都在......

但是当涉及到URL时,我似乎错过了一些东西.或者也许这不会对URL做任何事情,但直到现在我还没有注意到任何其他编码错误行为.我记得有两种情况作为例子:

URL模式url(r'^([a-z0-9äöüß_\-]+)/$', views.view_page)无法识别包含ä,ö,ü,ß的网址.这些字符被简单地忽略了.

以下代码的视图函数抛出异常:

def do_redirect(request, id):
    return redirect('/page/{0}'.format(id))
Run Code Online (Sandbox Code Playgroud)

从URL中捕获id参数,如第一个示例中的那个.如果我修复了URL模式(通过将其指定为unicode字符串)而不是访问/ä/,我得到了Exception

UnicodeEncodeError at /ä/
'ascii' codec can't encode character u'\xe4' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

但是,为视图函数尝试以下代码:

def do_redirect(request, id):
    return redirect('/page/' + id)
Run Code Online (Sandbox Code Playgroud)

一切都很好.这让我相信实际问题不在于Django,而是源自Python,将ByteStrings视为ASCII.我对编码没那么多,但第二个例子中的问题显然是String对象的format()方法.所以,在第一个例子中,由于Python处理正则表达式的方式,它可能会失败(虽然我不知道Django是否使用了re模块或其他东西).

到目前为止,我的解决方法只是在u发生此类错误时为字符串添加前缀.这是一个糟糕的解决方案,因为我可能很容易忽略一些东西 我尝试将每个Python字符串标记为unicode,但这会导致其他异常并且非常难看.

有没有人确切地知道,问题是什么以及如何以愉快的方式解决它(即当代码变大时不会让你的头爆炸的方式)?

提前致谢!

编辑:我的正则表达式,我发现,为什么u需要.将字符串指定为Raw String(r)使其被解释为ASCII.离开r之后使正则表达式工作没有u但是引入了一些带有反斜杠的头痛.

python django encoding

-1
推荐指数
1
解决办法
1423
查看次数

如何修复Excel导出(PHP)中的"选项卡"?

我应用此解决方案来解决我将文件导出到.CSV和Excel的编码问题并且它成功运行,但现在又出现了另一个问题:

我在PHP中使用的标签("\ t")作为Excel文件的分隔符停止工作.在我解决上一个问题之前它正在工作.当我打开excel文件时,显示如下:

"ColumnAColumbBColumnC"(全部在一起).

如果导出它像csv ('Content-type: text/csv; charset=UTF-8')我有成功,但不是Excel(Content-type: application/vnd.ms-excel; charset=UTF-8).

对此有何解决方案?

注意:使用","作为分隔符对我来说不是一个好的解决方案,因为在某些字段中我的值为",".

php excel encoding delimiter separator

-1
推荐指数
1
解决办法
2424
查看次数

关于JAVA编码识别

我有一个字符串,如"%E6%B1%82%E5%8A%A9".

我的问题是我怎么知道它是由"UTF-8"编码的.它似乎也像GBK(或GB2312)编码.

谢谢.

java encoding utf-8

-1
推荐指数
1
解决办法
211
查看次数

期待JSON文本时的二进制HTTP响应内容

我正在使用delphi XE3上传一些图像到服务器,我用chrome拦截了请求,我基本上用IDhttp发送完全相同的请求,服务器响应200 OK,所以我猜一切都很顺利.问题是,我需要获取响应内容以获取上传图像的链接,但我得到的只是:

    ‹      •ÒK
à  лÌ:Ôù¨Õ\¥)P‚‹¤…,Cî^K–ÅÂlddà1¿ê:/e‡ñq@®kÙöúÚRÍ0Wº}&³–\çÉ×^   6   ä“‹ÄŽ's÷!²½½·Îᇣ¨â„1Ù€=I¥±Å$®¯±®¶ˆ‰±¯©íW¦Ûà?ËêFÖbñ=Ë©,j·Á¡gyÅßá_Öóü gÊr Á  
Run Code Online (Sandbox Code Playgroud)

这是什么 ?我怎样才能获得Json响应?

在Chrome上拦截的响应标头是:

Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:169
Content-Type:application/json
Date:Thu, 21 Nov 2013 12:29:40 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=100
p3p:CP="CAO PSA OUR"
Pragma:no-cache

    Server:Apache/2.2.22 (Debian)
    Vary:User-Agent,Accept-Encoding
    X-Powered-By:PHP/5.4.4-14+deb7u3t-Type:application/json
Run Code Online (Sandbox Code Playgroud)

delphi encoding gzip http indy

-1
推荐指数
1
解决办法
703
查看次数

PHP编码后代码的安全性如何?混淆怎么办?

PHP代码使用第三方编码器(IonCube,Zend Guard)编码后.使用编码器反射怎么样?这不是很多代码吗?

据我所知,这些编码器有一个到期日期.使用旧版本编码的代码必然会在某些时候被破解.

我的解决方案是对代码进行编码后对代码进行编码(自定义编写的混淆器).将所有内容缩小为单个文件并进行模糊处理.超出本机PHP函数/变量的任何东西都是乱码.

这样,如果在某些时候代码被解码,结果将是一个混乱的,令人头脑麻木的代码.

代码是分布式的,每个客户端都有一个副本,它位于自己的LAMP服务器上.

无需担心调试,每次发布新版本时都会覆盖代码.

当然,这里有很多妥协.混淆限制了编码技术/框架的使用.

那么,您如何评价代码的安全性?混淆值得吗?

如果没有,有没有其他选择?你认为什么是最佳解决方案?

谢谢你,
福阿德

php security obfuscation encoding

-1
推荐指数
1
解决办法
1456
查看次数

Python 3 UTF-8编码确实不起作用

我现在已经阅读了很多关于Python 3中UTF-8编码主题的内容,但它仍然不起作用,我找不到我的错误.

我的代码看起来像这样

def main():

    with open("test.txt", "rU", encoding='utf-8') as test_file:
        text = test_file.read()
    print(str(len(text)))


if __name__ == "__main__":

    main()
Run Code Online (Sandbox Code Playgroud)

我的test.txt文件看起来像这样

ö
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)

python encoding utf-8

-1
推荐指数
1
解决办法
705
查看次数

在Excel中打开CSV时,某些字符无法正确显示

我知道有些人会认为这是重复的问题,但我尝试了stackoverflow上提供的所有解决方案.

我的问题是,在excel中打开时我无法在CSV中显示某些字符,但是notepad++正确显示它.

Notepad ++输出:

在此输入图像描述

Excel输出:

在此输入图像描述

我知道有些人会建议我显示一些标题等等,但我只是将这个CSV保存到服务器.用户将在需要时使用FTP下载它.

php csv excel encoding character-encoding

-1
推荐指数
1
解决办法
2042
查看次数

如何允许编码('utf-8')两次而不会在python中出错?

我有一个遗留代码段,encode('utf-8')当我传入一个unicode字符串(直接来自数据库)时总是对我来说,是否有办法将unicode字符串更改为其他格式以允许它再次编码为'utf-8'而无需获取错误,因为我不允许更改遗留代码段.

我先尝试解码它,但它返回此错误

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

如果我将unicode字符串保留为返回状态

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 986: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

如果我将遗留代码更改为不起作用encode('utf-8'),但这不是一个可行的选择

编辑:

这是代码片段

#!/usr/bin/env python2
# -*- coding: utf-8 -*-



if __name__ == "__main__":
   # 1
   a = u'??'
   # 2
   a = a.decode('utf-8')
   # 3
   a.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

出于某种原因,如果我跳过,#2我没有得到上面提到的错误,我仔细检查字符串的类型,它似乎都是unicode,两个是相同的字符,但我正在处理的代码不允许我编码或解码utf-8,而某些片段中的相同字符允许我这样做.

python unicode encoding utf-8

-1
推荐指数
1
解决办法
881
查看次数

检查NSString是否编码

如何检测NSString已经编码的内容.

我正在编码我的字符串,如下所示.在编码之前我只想验证天气[product url]是否已编码.

NSString *encodedUrlString=[[product url] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

encoding objective-c nsstring ios

-1
推荐指数
1
解决办法
1895
查看次数

压缩一个字节中的3个数字数据

所以,我使用的是C,我有6种命令编号为0-5,想要将它们中的3种组合起来,并将组合保存在单字节中.所以问题是如何编码这些数字?例如,如果我使用二进制编码,因此5是101,那么我无法保存555,因为101101101有9位而一个字节只有8.感谢您的关注.

c c++ compression encoding encode

-1
推荐指数
1
解决办法
95
查看次数