#3258 UnicodeEncodeError: 'ascii' codec can't encode character '\u5417' in position 9: ordinal not in range(128)

2406:da18* Posted at: 7 hours ago 👁4

无效的值或参数:'ascii' codec can't encode character '\u5417' in position 9: ordinal not in range(128):Traceback (most recent call last):
File "videotrans\translator\_base.py", line 102, in run
File "videotrans\translator\_base.py", line 165, in _run_srt
File "tenacity\__init__.py", line 338, in wrapped_f
File "tenacity\__init__.py", line 477, in call
File "tenacity\__init__.py", line 378, in iter
File "tenacity\__init__.py", line 421, in exc_check
tenacity.RetryError: RetryError[]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\util\TestSrtTrans.py", line 19, in run
File "videotrans\translator\__init__.py", line 966, in run
File "videotrans\translator\_base.py", line 105, in run
File "tenacity\__init__.py", line 480, in call
File "videotrans\translator\_chatgpt.py", line 138, in _item_task
File "openai\_utils\_utils.py", line 286, in wrapper
File "openai\resources\chat\completions\completions.py", line 1192, in create
File "openai\_base_client.py", line 1297, in post
File "openai\_base_client.py", line 991, in request
File "openai\_base_client.py", line 510, in _build_request
File "openai\_base_client.py", line 443, in _build_headers
File "httpx\_models.py", line 156, in init
File "httpx\_models.py", line 82, in _normalize_header_value
UnicodeEncodeError: 'ascii' codec can't encode character '\u5417' in position 9: ordinal not in range(128)


=
system:Windows-10-10.0.26200-SP0
version:v3.97
frozen:True
language:zh
root_dir:E:/win-pyvideotrans-v3.97

1 Replies

这是由于在向翻译API发送请求时,请求头(Header)中包含非ASCII字符(如中文字符“吗”),而系统默认的ASCII编码无法处理,导致Unicode编码错误。

解决方案:

  1. 检查翻译渠道的API Key:此错误通常出现在使用OpenAI或兼容接口(如DeepSeek)时,API Key中可能意外包含了中文字符或特殊符号。请前往“翻译渠道”设置,检查并重新输入API Key,确保其完全由英文字母和数字组成。
  2. 检查自定义提示词(Prompt):如果你在 prompts 目录下自定义了翻译提示词文件,请检查其中是否包含可能导致请求头编码异常的特殊格式或字符。尝试暂时使用默认提示词进行测试。
  3. 检查系统区域和语言设置:确保Windows系统的“非Unicode程序的语言”(即系统区域)设置为“中文(简体,中国)”。这可以确保命令行环境使用正确的编码。

    • 打开“控制面板” -> “时钟和区域” -> “区域” -> “管理”选项卡 -> 点击“更改系统区域设置...” -> 勾选“Beta版:使用Unicode UTF-8提供全球语言支持”(如果已勾选,请尝试取消勾选并重启电脑)或确保选择“中文(简体,中国)”。
  4. 以管理员身份运行软件:右键点击 sp.exe,选择“以管理员身份运行”,有时可以解决环境变量或编码权限问题。

如果以上步骤均无效,请提供更详细的日志信息,特别是错误发生前你正在使用的具体翻译渠道和配置。

请查阅相关文档:

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Related resource

Similar issues already exist