python - pymemcache unicode char 问题
问题描述
我正在尝试将值保存在 Memcache 中,但面临以下值错误(对于加拿大的ñ)
"last_name":"Canada Herrador","personal_space_id":105175
pymemcache.exceptions.MemcacheIllegalInputError:数据值必须是二进制安全的:“ascii”编解码器无法在位置 61 编码字符“\xf1”:序数不在范围内(128)
如何在内存缓存中保存 Unicode 字符,因为默认情况下它只支持 ASCII 字符?
解决方案
如何在内存缓存中保存 Unicode 字符,因为默认情况下它只支持 ASCII 字符?
您可以利用base64内置模块来完成此任务,但请注意,如果与纯 ASCII 文本一起使用,它将比文本本身占用更多空间,请考虑以下示例:
import base64
last_name = "Cañada Herrador"
encoded_last_name = base64.b64encode(last_name.encode("utf-8")).decode("ascii")
# now encoded_last_name is ASCII str which you can use with memcache
print(encoded_last_name) # Q2HDsWFkYSBIZXJyYWRvcg==
# after retrieving to get original string do
decoded_last_name = base64.b64decode(encoded_last_name).decode("utf-8")
print(decoded_last_name) # Cañada Herrador
推荐阅读
- excel - 基本 IF 语句问题 - 可能就在我面前
- python - convert the Dataframe from Pyspark to scala data frame
- python-3.x - DLL in G++/CLANG++ calling from Python
- jmeter - 如何从预处理器发送完整的表单 urlencoded 后数据
- sql - 按纪元时间分组
- javascript - PathAnimation图链接token动画错误
- c# - C# 反射:如何搜索程序集并获取泛型类型
- css - 在 Mui 中,如何在我的 css 中使用主题值
- selenium - 使用 selenium 中的单元格引用将数据输入用户名和密码字段
- flutter - 如何添加不支持 Null Safety 的 Flutter 插件