C#中 Image.FromFile为何识别不了中文路径下的图片?

已被格式化的叔叔 2017-10-17 06:08:53
pictureBox1.Image = Image.FromFile(@s);
其中@s代表路径名,是由外部读取的。
如果路径名含有中文的路径,则报错,程序运行不了,如果将中文路径去掉,程序则运行正常。请问这个是什么原因?或者有没有其他方法读取指定路径下面的图片?
...全文
908 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng2005 2017-10-23
  • 打赏
  • 举报
回复
引用 31 楼 sl1990129 的回复:
引用 29楼cheng2005 的回复:
而且出问题的时候path是什么值,你一直都没表述出来。
path是选择的含用中文的路径名,写和读也是这个文件名,但是读写纯英文路径名没有问题的,所以才觉得奇怪,看是哪里出现问题
别用眼睛看,用程序去比对path的值,怎么沟通这么费劲呢...
  • 打赏
  • 举报
回复
引用 29楼cheng2005 的回复:
而且出问题的时候path是什么值,你一直都没表述出来。
path是选择的含用中文的路径名,写和读也是这个文件名,但是读写纯英文路径名没有问题的,所以才觉得奇怪,看是哪里出现问题
  • 打赏
  • 举报
回复
引用 28楼cheng2005 的回复:
从表现来看,你的WriteString和ReadString方法,也就是写入文件,读出文件的内容应该是不一致,自己写测试方法,看看写入和读出的内容是否相同。
我打印出的内容是一致的
cheng2005 2017-10-23
  • 打赏
  • 举报
回复
而且出问题的时候path是什么值,你一直都没表述出来。
cheng2005 2017-10-23
  • 打赏
  • 举报
回复
从表现来看,你的WriteString和ReadString方法,也就是写入文件,读出文件的内容应该是不一致,自己写测试方法,看看写入和读出的内容是否相同。
  • 打赏
  • 举报
回复


现粘贴调试异常提醒:
'TestPath.vshost.exe' (Managed): Loaded 'C:\Users\user\Desktop\c#test\TestPath\TestPath\bin\x64\Release\TestPath.exe', Symbols loaded.
A first chance exception of type 'System.ArgumentException' occurred in mscorlib.dll
重载的路径:C:\Users\user\Desktop\照骗\2.jpg'TestPath.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
请问这是什么原因,用的vs2008 net3.5框架
cheng2005 2017-10-23
  • 打赏
  • 举报
回复
引用 35 楼 sl1990129 的回复:
[quote=引用 34楼cheng2005 的回复:]那99%是你操作那两个读写的API有问题,自己好好研究吧。 题外话,现在用ini存数据实在是太落后了。除了老项目不好改之外,新项目应该很少人用ini了。
嗯嗯,好的,谢谢!还有能推荐一下当今保存数据的方式吗?什么比较高效和方便哈[/quote] xml比较通用,也常用,可以支持复杂的数据结构和层次。 文件数据库也可以。
  • 打赏
  • 举报
回复
引用 34楼cheng2005 的回复:
那99%是你操作那两个读写的API有问题,自己好好研究吧。 题外话,现在用ini存数据实在是太落后了。除了老项目不好改之外,新项目应该很少人用ini了。
嗯嗯,好的,谢谢!还有能推荐一下当今保存数据的方式吗?什么比较高效和方便哈
cheng2005 2017-10-23
  • 打赏
  • 举报
回复
那99%是你操作那两个读写的API有问题,自己好好研究吧。 题外话,现在用ini存数据实在是太落后了。除了老项目不好改之外,新项目应该很少人用ini了。
  • 打赏
  • 举报
回复
引用 32楼cheng2005 的回复:
引用 31 楼 sl1990129 的回复:
[quote=引用 29楼cheng2005 的回复:]而且出问题的时候path是什么值,你一直都没表述出来。
path是选择的含用中文的路径名,写和读也是这个文件名,但是读写纯英文路径名没有问题的,所以才觉得奇怪,看是哪里出现问题
别用眼睛看,用程序去比对path的值,怎么沟通这么费劲呢... [/quote]谢谢您的提醒!!!保存和读取为什么会导致长度不一样呢?虽然路径内容相同哈
  • 打赏
  • 举报
回复
引用 23楼以专业开发人员为伍 的回复:
引用 8 楼 sl1990129 的回复:
[quote=引用 6楼以专业开发人员为伍 的回复:]你的冒号用全角中文?
这个我只是举例而已,程序里面的路径我是通过打开文件夹手动选择的
你举例使用了手动给一个变量赋值的代码,这就根本看不出你原来的代码是怎么获得值的。这就相当于羞答答地隐藏身体,谁能诊断皮肤病啊?[/quote]谢谢您的作答,谢谢!测试代码已经列出了,一个程序是文件的读写用的,另外一个主窗体用于选择图片和现实图片,错误的条件是选择打开图片的路径要包含中文
  • 打赏
  • 举报
回复
引用 22楼xuzuning 的回复:
我测试你的代码并没有发现出错,所以怀疑是字符集问题 你至少应截个图证明一下
程序第一次执行没有问题,第二次重新打开再加载路径就有问题了,还有打开选择图片的路径要包含中文路径,第二次加载才会出现问题呀,我用的平台是vs2008
xuzuning 2017-10-21
  • 打赏
  • 举报
回复
请给出走狗的信息(包括代码)以使我们可以再现你遇到的问题
  • 打赏
  • 举报
回复
补充说明一点,这个路径是从ini文件中读取的,然后再操作使用的,就发现读取含有中文的路径就会出现调试问题,显示路径不合法,各位大佬有没有什么合理的解决办法啊?在线等!
  • 打赏
  • 举报
回复
贴出你的真实的代码的调试画面。调试画面! 不要乱写一个无关的代码。
  • 打赏
  • 举报
回复
引用 8 楼 sl1990129 的回复:
引用 6楼以专业开发人员为伍 的回复:
你的冒号用全角中文?
这个我只是举例而已,程序里面的路径我是通过打开文件夹手动选择的
你举例使用了手动给一个变量赋值的代码,这就根本看不出你原来的代码是怎么获得值的。这就相当于羞答答地隐藏身体,谁能诊断皮肤病啊?
xuzuning 2017-10-21
  • 打赏
  • 举报
回复
我测试你的代码并没有发现出错,所以怀疑是字符集问题 你至少应截个图证明一下
  • 打赏
  • 举报
回复
引用 20楼xuzuning 的回复:
你用记事本打开 setting.ini 看看都有什么?并看一下 setting.ini 的字符集(另存为 就可看到)
存储的路径没问题啊,我是路径里面包含中文出错,全英文路径是没有问题的啊
xuzuning 2017-10-21
  • 打赏
  • 举报
回复
你用记事本打开 setting.ini 看看都有什么?并看一下 setting.ini 的字符集(另存为 就可看到)
  • 打赏
  • 举报
回复
引用 16楼xuzuning 的回复:
请给出走狗的信息(包括代码)以使我们可以再现你遇到的问题
谢谢您的回答,复现的程序已经贴下来了,请参考
加载更多回复(16)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧