我创建了调用文件的网站和桌面程序,例如(图像 - 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/