[BUG] Encoding issue, cannot download files from B2 to Local HDD. Cannot encode to CP1252 on stdout
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 22/100
Hướng nghiên cứu
The payload names no source file or test, so start by reproducing: on a Windows console with a cp1252 code page, download a B2 file whose name contains a character outside cp1252 (for example ౿) and capture the UnicodeEncodeError traceback to find the print or write call that fails. Setting PYTHONIOENCODING=utf-8 can confirm that stdout encoding is the cause. Done means the download completes and the name is shown or handled without raising. The thread has been idle for about four years, so confirm the maintainers still want this fixed before starting.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Hello!
I discovered this issue and originally thought it was a 'Connection Pool' issue which I commented here. <-- There are a few comments in this link that pertain to this current issue #778
Scenerio
- 2-3 years ago I uploaded my files from my local HDD
-->Backblaze B2 Bucket. - (Current day) | I need to download the files from my B2 Backblaze bucket to my local HDD
- When I download the files using the
b2cli tool, I cannot complete the download due to:UnicodeEncodeError: "charmap" can't encode character "\u0c7f" in position 132: character maps to <undefined> - This error occurs in several of my files, that all have different encode character errors (not limited to:
\u0c7f).
In the comments, I was speaking to [ppolewicz]https://github.com/ppolewicz and he correctly pointed out that it is an error where they b2 python CLI tool cannot encode my file names to cp1252.
Screenshots of the errors from the B2 CLI tool
Here are some screenshots of the errors using the b2 CLI tool



In the comments, I was speaking to [ppolewicz]https://github.com/ppolewicz and he correctly pointed out that it is an error where they b2 python CLI tool cannot encode my file names to cp1252.
What I have tried
I thought that if I could identify and generate a list of the filenames which could not be encoded to cp1252, I could rename each filename to an acceptable filename which the b2 CLI tool could handle.
- I wrote a C# Console app (I can share the code if it is needed) which uses the B2.NET which is a C# .NET library that essentially queries the B2 API.
- My console app performs the following steps:
1.) Downloads all file names (and folders)
2.) Encodes the file names fromUTF-16tocp1252. When I receive the files from the B2 API, they are received inUTF-8orUTF-16format, I believe itsUTF-16.
3.) If the filename can not be encoded tocp1252, an exception would be thrown with the errors are logged, the file is marked aserrorwithin my Console App.
Expected Result:
4.) I expected that the filenames that the b2 CLI tool cannot encode to cp1252, to also throw an error within my own Console App. I expected the same files which the b2 CLI tool app has issues encoding to cp1252 also have issues within my own Console App, and my Console App would not be able to encode the same files to cp1252.
Then problematic target files that cannot be encoded to cp1252 will be marked as error within my Console App so that I could identify the problem files and rename the files using the B2 API
Actual Result:
4.) No encoding errors occurred and all file names were accurately mapped from UTF-8 or UTF-16 to cp1252 within my console app. No encoding issues occured.
Conclusion
At this point, I am somewhat at a loss and looking for direction to how I or we should fix this. I can provide anything that you guys need to help come to a solution to fix this (I would love to help too, I also wrote a Console App to help fix this).
I can share anything that you guys need including:
- My console app source code
- List of all my file names
- etc, whatever you guys need to help diagnose this.
Thanks!
- Ngôn ngữ chính
- Python
- Star
- 638
- Fork
- 138
- Merge trung bình
- 8 giờ 27 phút
- Pull request đã merge (30 ngày)
- 8
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Backblaze/B2_Command_Line_Tool
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Backblaze/B2_Command_Line_Tool#553 · 2 bình luận · 3 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Adopt the AI-native SDLC playbook and repository policiesCó thể đã có người làm @goanpeca đã nhận 18 ngày trước. Đang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Backblaze/B2_Command_Line_Tool#1192 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Backblaze/B2_Command_Line_Tool#1168 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add to MacPortsĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 50/100
Backblaze/B2_Command_Line_Tool#1161 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
b2 ls timestamps human readableĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 56/100
Backblaze/B2_Command_Line_Tool#1155 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Backblaze/B2_Command_Line_Tool
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
btclib-org/btclib-node#2505 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
open-webui/open-webui#34462 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
gorakhargosh/watchdog#1462 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
openwisp/openwisp-monitoring#889 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
IETF-Hackathon/pqc-certificates#351 ·
Maintainer thường phản hồi trong vòng 2 ngày