首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在浏览器URL中使用Flask读取西里尔符号

无法在浏览器URL中使用Flask读取西里尔符号
EN

Stack Overflow用户
提问于 2018-04-16 11:44:31
回答 2查看 1.1K关注 0票数 1

大家下午好!

基本上,我在使用Flask框架在Python中运行我的编程代码时,阅读西里尔字母有问题。

URL Chrome中会发生什么?

"mamapapa“必须用西里尔语-- "мамапапа

这是我的密码:

代码语言:javascript
复制
# -*- 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'的编码/解码有什么用?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 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进行一些控制)。

票数 0
EN

Stack Overflow用户

发布于 2018-04-18 05:16:20

试一试,取消报价。示例:

代码语言:javascript
复制
#Python3
from urllib.parse import unquote
string = unquote('УРЛ')

#Python2
import urllib
url='УРЛ'
urllib.unquote(url).decode('utf8')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49856496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档