python - URL : Binary Blob, Unicode 或编码的 Unicode 字符串?

标签 python mysql database url

我希望将 URL 存储在数据库(本例中为 MySQL)中并在 Python 中处理它。尽管数据库和编程语言可能与我的问题不太相关。

在我的设置中,当查询数据库中的文本字段时,我收到 unicode 字符串。但 URL 实际上是文本吗?从 unicode 进行编码和解码是应该对 URL 执行的操作吗?或者将数据库中的列设置为二进制 blob 更好?

那么,你是如何处理这个问题的呢?

澄清: 这个问题不是关于用百分比表示法对非 ASCII 字符进行 urlencode 的。这是关于 unicode 表示文本和字节字符串表示将此文本编码为字节序列的方法的区别。在 Python(3.0 之前)中,这种区别在于 unicode 和 str 类型之间。在 MySQL 中,它是 TEXT 到 BLOBS。因此,编程语言和数据库之间的概念似乎是对应的。但是在此方案中处理 URL 的最佳方法是什么?

最佳答案

相关答案可以在RFC 2396中找到, 部分 2.1 URI 和非 ASCII 字符


URI和字符之间的关系一直是 不属于 US-ASCII 的字符会造成混淆。来描述 的关系,区分“字符”是有用的 (作为可区分的语义实体)和“八位字节”(一个 8 位 字节)。有两种映射,一种是从 URI 字符到八位字节,另一种是从 URI 字符到八位字节的映射 从八位位组到原始字符的一秒:

URI字符序列->八位字节序列->原始字符序列

URI 表示为字符序列,而不是序列 八位位组。这是因为 URI 可能通过以下方式“传输” 不是通过计算机网络,例如打印在纸上、阅读 radio 等


关于python - URL : Binary Blob, Unicode 或编码的 Unicode 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/416315/

相关文章:

C# 声称我的 SQLite 表不存在,但它确实存在

python - 点之间的欧几里得距离

python - 对不同目录中的文件使用 exec 会导致模块导入错误

python - 如何为数据框的索引绘制不同的图?

php - 插入查询 If 语句 PHP

php - 删除按钮不起作用

python - 在 Windows 上将原始数据写入物理磁盘(闪存驱动器)失败并显示 "Bad file descriptor"- Python

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

MySQL - 索引 innodb 外键

sql - 我怎么知道日期是否在特定时间段内