讀寫文件時編碼問題(一些經驗,提供給大家)
發表時間:2023-08-14 來源:明輝站整理相關軟件相關文章人氣:
[摘要]前些日子,在用VB.NET寫自己的視頻點播站點時,出現了一個讓我很是生氣的問題,由于用RealPlayer播放的視頻通過REALSERVER播放,因此我建立了REALSERVER,但是RM格式文件如...
前些日子,在用VB.NET寫自己的視頻點播站點時,出現了一個讓我很是生氣的問題,由于用RealPlayer播放的視頻通過REALSERVER播放,因此我建立了REALSERVER,但是RM格式文件如果想進行剪輯或編輯,類似于MEDIA提供的ASX文件一樣,它提供了RAM和SMIL文件的格式,其實就是純粹的文本,該文本中包含了播放的路徑如rtsp://.....rm以及開始播放時間、結束播放時間等信息,我利用文件讀寫IO接口去寫,寫成smil文件格式,但是,英文沒有任何問題,寫成中文就出了問題,亂碼!
我檢查了web.config文件中后發現我的選擇是GB2312啊,沒有問題。怎么回事呢?后來我發現web.config不控制文件讀寫部分功能。
于是查了MSDN,發現在StreamWriter對象中有一個Encoding方法,引起了我的注意,后來終于把問題解決了,下面是部分代碼:
Dim f As New StreamWriter(Server.MapPath("tmpWord.smil"), False, System.Text.Encoding.GetEncoding("GB2312"), 512)
這樣是簡便的寫法,直接在New的時候寫參數,或者用f.Encoding
其中,Server.MapPath("tmpWord.smil")自然就是要寫入文件的路徑,False部分是用來表明是否保留原先的內容,如果True則保留,新的內容寫入無效,如果False則覆蓋原先的內容,System.Text.Encoding.GetEncoding("GB2312"), 是要得到需要用的編碼格式,默認的編碼格式是UTF-8,所以這里要寫明我們要用到的GB2312,512是寫入緩存的大小。
簡單吧,千萬不要被寫入.TXT文件中文部分沒問題所迷惑,因為微軟想讓它的UTF8格式成為通用的格式,而別的提供商卻并不買它的帳