html - 调用具有外国名称的文件 vb.net、c# 和 asp

标签 html asp.net vb.net file

我创建了调用文件的网站和桌面程序,例如(图像 - pdf - 视频) 但这些文件有外国名称,如“Dr._Laura_Véccia V'agliéri.jpg” 或者有特殊的性格,所以大部分时间我不工作

当我在网站上这样调用它时

<img src="Dr._Laura_Véccia V'agliéri.jpg" />

或者喜欢

Try 

  Using sr As StreamReader = New StreamReader("Dr._Laura_Véccia V'agliéri.jpg")
  Dim line = Await sr.ReadToEndAsync()
  ResultBlock.Text = line
End Using 
Catch
   ResultBlock.Text = "Could not read the file" 
End Try 

有没有一种方法可以在不更改文件名的情况下正确调用它

最佳答案

Framework 4.5 中的 StreamReader 和使用 NTFS 可以正确处理符合 UNICODE 的文件字符串,例如您提供的文件名,因此您可以使用特殊字符,例如 é 和 '.

这是经过测试的代码,可以成功读取具有您指定的文件名的文本文件。

Async Sub ReadCharacters()
    Dim result As String

    Using reader As StreamReader = New StreamReader("c:\\users\\path\\Dr._Laura_Véccia V'agliéri.jpg.txt")
        Console.WriteLine("Opened file.")
        result = Await reader.ReadToEndAsync()
        Console.WriteLine("Contains: " + result)
    End Using
End Sub

我认为正在发生的事情是流阅读器在尝试自动检测您的 jpeg 上的编码失败后向您抛出一个错误。 SteamReader 实际上是为文本流设计的。

对于 .jpg,您最好使用 BinaryReader因为这将完全避免文件中的任何编码问题。

关于html - 调用具有外国名称的文件 vb.net、c# 和 asp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25617951/

相关文章:

javascript - 拖放时清除 jQuery data()

asp.net - 沙盒化 Google 自定义搜索引擎的样式

c# - 与 const 字段相比,在 web.config 中存储值是否有性能损失?

c++ - vb 整数到 c++ 到 ML32 到 c++ 到 vb UInteger

html - 如何停止背景颜色覆盖整个屏幕

html - HAML & 字体很棒;我最终在图标后看到了一个 5。我不想要按钮上的五个。

javascript - jQuery Uncaught TypeError 但在不同的页面上工作

c# - 如何在 webforms 中为用户控件创建自定义事件?

哈希表中的asp.net静态缓存

vb.net - 在 KeyDown 上捕获 keys.TAB