大家下午好!
基本上,我在使用Flask框架在Python中运行我的编程代码时,阅读西里尔字母有问题。
"mamapapa“必须用西里尔语-- "мамапапа”
这是我的密码:
# -*- coding: utf-8 -*-
from flask import Flask, jsonify
from unidecode import unidecode
from venv import logger
app = Flask(__name__)
names1=""
@app.route('/hashtags/<string:names>', methods=['GET'])
def get_hashtags(names):
names1 = "#" + 'names'
np= logger.start(names1)
return jsonify({'Сегментация хэштегов': unidecode(np)})
if __name__ == '__main__':
app.run(port=9876)正如您所看到的,我已经使用了unidecode来将西里尔字母翻译成return jsonify({'Сегментация хэштегов': unidecode(np)})行中的拉丁字母,但这并不是我想要做的。我的主要目的是在得到输出时精确地获得西里尔符号(如、привет、或США)。
据我所知,在浏览器URL中不可能使用西里尔字母?这是真理还是有可能达到我的目标,得到西里尔的输出?
也许'UTF-8'的编码/解码有什么用?
提前感谢!
发布于 2018-04-17 08:35:42
你是正确的。URL字符是有限的:普通拉丁字母(a-z,小写和大写)和标记:-,_,.,~。其他字符用%转义,后面跟着两个十六进制数字。[资料来源:RFC3986附录-A]。有些人可以创造性地使用其他字符,这些字符真正分割路径和参数(例如+、括号等)。
历史上,URL被设计为供机器使用(http://www.不是人类最易读的前缀),因此这样的转义:您可以放置所有字节,但是这些字节是用%编码的。
域可以使用其他字符( ASCII之外),但在本例中,它只是一个编码标准(对ASCII而言):DNS和协议仍然只使用ASCII字符。
浏览器可以自动进行转义,您可以显示未转义的URL,但真正的url是转义的。如果这种自动转义对他们的邮件客户机/浏览器有效,您应该尝试使用case (或客户端)。
在任何情况下,使用HTML,您可以将URL以不同的方式显示在URL栏上的url上(在链接上,您可以使用javascript进行一些控制)。
发布于 2018-04-18 05:16:20
试一试,取消报价。示例:
#Python3
from urllib.parse import unquote
string = unquote('УРЛ')
#Python2
import urllib
url='УРЛ'
urllib.unquote(url).decode('utf8')https://stackoverflow.com/questions/49856496
复制相似问题