我正在尝试制作一个程序:
一旦我能够正确地阅读和存储这些标志(我试着将它们写入另一个文件,以检查它们是否正确,并且是否有效),我就不知道如何将它们发送到我的浏览器。
我连接到127.0.0.1:4321,我所能做到的最好的是得到一个(据说)网址编码的汉字及其翻译。
代码:
# -*- coding: utf-8 -*-
import codecs
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
from SocketServer import ThreadingMixIn
import threading
import random
import urllib
source = codecs.open('./signs_db.txt', 'rb', encoding='utf-16')
# Checking utf-16 works fine with chinese characters and stuff :
#out = codecs.open('./test.txt', 'wb', encoding='utf-16')
#for line in source:
# out.write(line)
db = {}
next(source)
for line in source:
if not line.isspace():
tmp = line.split('\t')
db[tmp[0]] = tmp[1].strip()
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
message = threading.currentThread().getName()
rKey = random.choice(db.keys())
self.wfile.write(urllib.quote(rKey.encode("utf-8")) + ' : ' + db[rKey])
self.wfile.write('\n')
return
class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
"""Handle requests in a separate thread."""
if __name__ == '__main__':
server = ThreadedHTTPServer(('localhost', 4321), Handler)
print 'Starting server, use <Ctrl-C> to stop'
server.serve_forever()
如果我不urlencode的汉字,我得到一个错误从python:
self.wfile.write(rKey + ' : ' + db[rKey])
这给了我这个:
UnicodeEncodeError:'ascii'编解码器无法编码字符u'\u4e09'在位置0:序数不在范围内(128)
我也尝试过使用“utf-16”进行编码/解码,但仍然会收到这种错误消息。
这是我的测试文件:
Sign Translation
一 One
二 Two
三 Three
四 Four
五 Five
六 Six
七 Seven
八 Eight
九 Nine
十 Ten
所以,我的问题是:“如何让我的脚本中的汉字在我的浏览器中正确显示”?
通过编写元标记声明页面的编码,并确保以UTF-8编码整个Unicode字符串:
self.wfile.write(u'''\
<html>
<headers>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
</headers>
<body>
{} : {}
</body>
</html>'''.format(rKey,db[rKey]).encode('utf8'))
和/或声明HTTP内容类型:
self.send_response(200)
self.send_header('Content-Type','text/html; charset=utf-8')
self.end_headers()
我正在从Java后端导出一个xls文件,但是当客户端收到它时,它被识别为xlsx文件,尽管它的名称中有. xls扩展名。我正在使用JasperXlsExporterBuilder构建xls文件。 发送文件时,我设置了响应类型: 这会导致问题,因为某些Excel版本无法处理识别的类型和文件扩展名之间的不匹配。
我正在构建一个简单的PHP代理,缓存响应头和对象。 我的问题是,如果我登录到youtube.com,我就看不到自己的签名,youtube一直说登录(未签名),但是如果我停止我的脚本,打开youtube.com网站,我就会看到我自己签名了。我认为这是饼干的问题。是吗? 我的脚本只是抓取响应头并将其发送回浏览器。当我使用fopen()下载对象时,一些网站,如Google“Play STore” 我在响
现在如何将此保存到浏览器。
下面是我的文本文件: 这是我的代码片段: 我得到以下异常: 我该怎么办?
我试图从Firefox中的新MediaRecorderAPI发送一个Blob到NodeJS以将其存储在文件中。Blob包含转换为webm-file的记录。我在发送之前将这个Blob分成一定的大小,以便能够通过webrtc数据通道提供的带宽发送它。这个看起来像这样: 在nodeJS方面,我试图将数据转换回webm文件,就像这样: 它告诉我,块被写入,但是文件是空的。我尝试了从blob派生的bas64
我读过其他一些类似于此的问题,但都使用了imports和extras,除了importjava.io.*之外,我不想使用任何imports;也没有任何名单。另外,这个is方法中的for循环是我在搞乱它,因为我无法弄清楚它。 }public static void main(string[]args)抛出IOException,FileNotFoundException{int[]array=pro