明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

讀寫文件時編碼問題(一些經(jīng)驗,提供給大家)

[摘要]前些日子,在用VB.NET寫自己的視頻點播站點時,出現(xiàn)了一個讓我很是生氣的問題,由于用RealPlayer播放的視頻通過REALSERVER播放,因此我建立了REALSERVER,但是RM格式文件如...
前些日子,在用VB.NET寫自己的視頻點播站點時,出現(xiàn)了一個讓我很是生氣的問題,由于用RealPlayer播放的視頻通過REALSERVER播放,因此我建立了REALSERVER,但是RM格式文件如果想進(jìn)行剪輯或編輯,類似于MEDIA提供的ASX文件一樣,它提供了RAM和SMIL文件的格式,其實就是純粹的文本,該文本中包含了播放的路徑如rtsp://.....rm以及開始播放時間、結(jié)束播放時間等信息,我利用文件讀寫IO接口去寫,寫成smil文件格式,但是,英文沒有任何問題,寫成中文就出了問題,亂碼!
我檢查了web.config文件中后發(fā)現(xiàn)我的選擇是GB2312啊,沒有問題。怎么回事呢?后來我發(fā)現(xiàn)web.config不控制文件讀寫部分功能。
于是查了MSDN,發(fā)現(xiàn)在StreamWriter對象中有一個Encoding方法,引起了我的注意,后來終于把問題解決了,下面是部分代碼:

Dim f As New StreamWriter(Server.MapPath("tmpWord.smil"), False, System.Text.Encoding.GetEncoding("GB2312"), 512)

這樣是簡便的寫法,直接在New的時候?qū)憛?shù),或者用f.Encoding
其中,Server.MapPath("tmpWord.smil")自然就是要寫入文件的路徑,F(xiàn)alse部分是用來表明是否保留原先的內(nèi)容,如果True則保留,新的內(nèi)容寫入無效,如果False則覆蓋原先的內(nèi)容,System.Text.Encoding.GetEncoding("GB2312"), 是要得到需要用的編碼格式,默認(rèn)的編碼格式是UTF-8,所以這里要寫明我們要用到的GB2312,512是寫入緩存的大小。

簡單吧,千萬不要被寫入.TXT文件中文部分沒問題所迷惑,因為微軟想讓它的UTF8格式成為通用的格式,而別的提供商卻并不買它的帳