'新', '泽'

最近偶然发现,把软件放到 [新建文件夹]  中,ImageMagick 竟无法正常的加载图片了。

我去!什么情况?

抛出的错误是找不到相关的dll,软件中已对中文进行了utf-8编码,这几年来一直没发现还存在这样的问题。

开始排查是哪个汉字引起的,一个字一个字查,最后查到 '',如果把'新'这个字删除,把软件存放在 [建文件夹中],ImageMagick 可以正常的加载图片。

为什么只要文件夹中含有 '' , ImageMagick 就会出错呢?

百度,google了一圈,找到一篇文章:

UTF-8非最短形式及编码安全问题 - http://blog.csdn.net/c465869935/article/details/54407084

说的是UTF-8有一种叫:非最短形式编码,看来utf-8有多种编码了。

其中文章中提到一个 '',我就新建一个文件夹 [泽], 把软件放进去测试,果然,软件无法正常运行:ImageMagick 无法加载图片,找不到 dll。

我的项目中,使用的是 libiconv 对字符串进行编解码:

项目代码 -> libiconv -> ImageMagick

具体是哪个环节出了问题,我到现在都不知道。

反正以后写软件用到 ImageMagick 的时候, 我都会把软件放到 中文文件夹名: [新] 中运行试一下,看是否能正常运行。

原文地址:https://www.cnblogs.com/personnel/p/7349830.html