我发现 GraphicsMagick 无法处理我用中文命名的文件。我在 ImageMagick 上做了同样的测试,但 IM 按预期工作。
我认为这可能是一个错误,所以我在这里提交了一个错误报告:https ://sourceforge.net/p/graphicsmagick/bugs/384/
无论如何,这是重现我的情况的方法:
- 平台:Win10
- 版本:GraphicsMagick 1.3.20
- 代码:
gm -identify 獅藝學會.jpg
这是命令提示符返回的文本:
>gm -identify 獅藝學會.jpg
gm identify: Unable to open file (????.jpg) [Invalid argument].
gm identify: Request did not return an image.
使用 IM 有效:
identify 獅藝學會.jpg
ç?.è-?å-,æoƒ.jpg JPEG 3264x2448 3264x2448+0+0 8-bit sRGB 2.691MB 0.016u 0:00.004
虽然返回的文本是乱码的,但是将文件转换为.png
除了不同的扩展名之外仍然保持相同的文件名。
发生了什么
我通过使用gm node.js 库批处理我的图像发现了这个问题,调用的源是从UTF-8网页进行的,所以我假设文件名作为 Unicode encoding 传递。
我没有找到与此问题相关的文档,虽然文档说明有一个-encoding
选项,但它无法在 Windows 上作为参数发送,因为它无法识别它,我在 Google 上找不到相关解决方案。
请帮忙,有什么简单的方法可以解决这个问题,同时保持准确的文件名?