網站首頁 編程語言 正文
UnicodeEncodeError: ‘utf-8‘ codec can‘t encode characters in position解決方法
作者:CrazyCosin 更新時間: 2022-05-13 編程語言一、問題背景
爬蟲采集來的文件名中含有emoji以及全角半角符號,但是采集時并沒有處理,原封不動存儲到了數據中。現在有個需求,從數據庫中取出數據,發送跟客戶端,客戶端拿這文件名寫入到文件緩存。問題出現在緩存到了文件,再從文件取出來的時候,報了unicodeError。
二、解決方法?
1.首先服務端發送特殊字符的時候,json dumps的時候要指定ensure_ascii為False,不編碼。保留原字符。
2.這里其實有個標準輸出問題,客戶端拿到傳輸的字符,json loads 但是emoji或者/u3000這種全角符號依然會存在,但是使用print打印卻不會顯示。
ss = '/電視劇/換子成龍 02 主 演: 劉愷威 杜淳 馬雅舒 程莉莎.CJBVu5Jsr7I.mp4/shot_00000298_frame_00035267.jpg'
d = {'file_path': ss}
f = json.dumps(d, ensure_ascii=False)
# f 的內容
# '{"file_path": "/電視劇/換子成龍 02 主\u3000演: 劉愷威 杜淳 馬雅舒 程莉莎.CJBVu5Jsr7I.mp4/shot_00000298_frame_00035267.jpg"}'
k = json.loads(f)
# k 的內容
# {'file_path': '/電視劇/換子成龍 02 主\u3000演: 劉愷威 杜淳 馬雅舒 程莉莎.CJBVu5Jsr7I.mp4/shot_00000298_frame_00035267.jpg'}
# 這時候使用print打印
# 顯示 /電視劇/換子成龍 02 主 演: 劉愷威 杜淳 馬雅舒 程莉莎.CJBVu5Jsr7I.mp4/shot_00000298_frame_00035267.jpg 結果是正常的
# 但是寫如文件
with open('test.txt',w) as f:
f.write(k['file_path'])
# 在文件中打開 依然顯示\u3000這個字符
# 采用標準輸出流重定向
with open('test.txt', 'wt') as f:
print(k['file_path'], file=f)
# 在文件中打開,顯示正常不含\u3000
原文鏈接:https://blog.csdn.net/CrazyCosin/article/details/121514861
相關推薦
- 2023-02-27 c++數組排序的5種方法實例代碼_C 語言
- 2022-07-17 gethostbyaddr在Python3中引發UnicodeDecodeError_python
- 2023-03-01 shell?sleep睡眠命令的具體使用_linux shell
- 2022-01-29 win server 2008 web IIS部署asp.net程序后,CSS樣式錯亂不顯示問題
- 2022-05-06 C語言中回調函數的使用詳情_C 語言
- 2022-02-21 django update_or_create 報錯GPUModel.MultipleObjects
- 2022-09-17 python?Pandas之DataFrame索引及選取數據_python
- 2022-09-15 Docker運行Nacos容器自動退出問題的解決方法_docker
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支