TCFontCreator icon indicating copy to clipboard operation
TCFontCreator copied to clipboard

路径不能有中文 不显示具体异常 -cmd没用

Open shoushou1106 opened this issue 1 year ago • 3 comments

  • 经过测试 任意路径中出现中文都会出现此报错 详见最下面的完整cmd记录
Traceback (most recent call last):
  File "E:\UserName\Desktop\中文字體簡繁處理工具\run_in_command_line_sc.py", line 114, in <module>
    subprocess.run(tuple([fontforge, '-script', pyfilef]+args))
  File "subprocess.py", line 548, in run
  File "subprocess.py", line 1026, in __init__
  File "subprocess.py", line 1538, in _execute_child
FileNotFoundError: [WinError 2] The system cannot find the file specified
  • 使用UI只会提示失败!(建议完善异常处理) 图片

  • -cmd参数启动UI不会出现命令行

程序版本:20240326 Windows 版本:Windows 11 23H2 (OS Build 22631.3527) 命令行:Windows 终端 (cmd)

完整cmd记录

由于隐私问题 用户名和文件夹名已简化 被简化的部分不包含非ASCII字符

程序路径有中文测试

E:\UserName\Desktop\这是中文>.\python\python run_in_command_line_sc.py
====中文字体简繁处理工具====

请输入要处理的字体路径(或拖入文件):
"E:\Folder\Cafeteria\Cafeteria_RYXW_opt.ttf"
请输入输出文件:
"E:\Folder\Cafeteria\Cafeteria_RYXW_opt_cn.ttf"
请选择字体处理内核:
        1.otfcc
        2.FontForge
2
请选择处理方式:
        1.生成简转繁字体
        2.生成繁转简字体
        3.从其他字体补入
        4.使用字体本身简繁异体补充字库
        5.合并简体与简入繁出字体
2
是否同时完成同义字补全字库(输入Y/N):
Y
请输入新字体名称(英文), 如果不想设置可直接输入 Enter:

正在处理,请稍后...

Traceback (most recent call last):
  File "E:\UserName\Desktop\这是中文\run_in_command_line_sc.py", line 114, in <module>
    subprocess.run(tuple([fontforge, '-script', pyfilef]+args))
  File "subprocess.py", line 548, in run
  File "subprocess.py", line 1026, in __init__
  File "subprocess.py", line 1538, in _execute_child
FileNotFoundError: [WinError 2] The system cannot find the file specified

字体路径有中文测试

E:\UserName\Desktop\a>.\python\python run_in_command_line_sc.py
====中文字体简繁处理工具====

请输入要处理的字体路径(或拖入文件):
"E:\Folder\Cafeteria\这是中文\Cafeteria_RYXW_opt.ttf"
请输入输出文件:
"E:\Folder\Cafeteria\这是中文\Cafeteria_RYXW_opt_cn.ttf"
请选择字体处理内核:
        1.otfcc
        2.FontForge
2
请选择处理方式:
        1.生成简转繁字体
        2.生成繁转简字体
        3.从其他字体补入
        4.使用字体本身简繁异体补充字库
        5.合并简体与简入繁出字体
2
是否同时完成同义字补全字库(输入Y/N):
Y
请输入新字体名称(英文), 如果不想设置可直接输入 Enter:

正在处理,请稍后...

Traceback (most recent call last):
  File "E:\UserName\Desktop\a\run_in_command_line_sc.py", line 114, in <module>
    subprocess.run(tuple([fontforge, '-script', pyfilef]+args))
  File "subprocess.py", line 548, in run
  File "subprocess.py", line 1026, in __init__
  File "subprocess.py", line 1538, in _execute_child
FileNotFoundError: [WinError 2] The system cannot find the file specified

shoushou1106 avatar May 13 '24 12:05 shoushou1106

感谢反馈!中文容易出错,这个无法避免,下次工具打包时不再使用中文。UI未捕捉到错误信息可能是程序(fontforge、python)中途崩溃,没办法只会提示失败。UI的 cmd 参数应使用 cmd 而不是 -cmd

GuiWonder avatar May 13 '24 14:05 GuiWonder

otfcc也会这样,我怀疑是subprocess的问题 可以试试这个方法

我另一台windows系统语言是中文的电脑就没有这个问题,出现此问题的电脑语言是英语

shoushou1106 avatar May 13 '24 14:05 shoushou1106

谢谢,我的电脑也就没有这个问题,所以不太容易找出原因,还是尽量避免使用中文可靠一些。

GuiWonder avatar May 13 '24 14:05 GuiWonder

@h469211620 这里是issue,不是用来感谢作者的 你如果一定要的话请自己开一个issue

shoushou1106 avatar Oct 20 '24 23:10 shoushou1106

@h469211620 抱歉,消息未读到。如果是和本条话题无关的内容,可重开新的话题,谢谢。

GuiWonder avatar Oct 21 '24 00:10 GuiWonder

发现UI界面路径问题是由于调用 cmd 引起的,新版已不再使用 cmd(UI的显示 cmd 功能也不再可用)。您提到的run_in_command_line_sc.py cmd记录中的错误,可能是由于 FontForge 不在环境变量。建议 Windows下直接使用图形界面,优先使用 otfcc。

20241022212252

GuiWonder avatar Oct 22 '24 13:10 GuiWonder