2014-09-02 41 views
2

我創建網站和桌面程序,調用像(圖像 - pdf - 視頻) 文件但外文名稱,如「Dr._Laura_VécciaV'agliéri.jpg」 或有特殊字符,所以大部分時間我不工作與外文名稱vb.net,c#和asp調用文件

當我在網站上這樣稱呼它像

<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 

是有一種方法可以在不更改文件名的情況下調用它

回答

0

使用NTFS的StreamReader可以正確處理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實際上是用於文本流。

對於.jpgs你是最好關閉用BinaryReader,因爲這將完全避免你的文件中的任何編碼問題。