當前位置:開發者網絡 >> 技術教程 >> .NET教程 >> 文件IO >> 內容
精彩推薦
分類最新教程
分類熱點教程
    
讀寫文件時編碼問題(一點經驗,提供給大家)
作者:未知
日期:2003-07-12
人氣:
投稿:Andy.m(轉貼)
來源:未知
字體:
收藏:加入瀏覽器收藏
以下正文:
前些日子,在用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格式成為通用的格式,而別的提供商卻並不買它的帳
相關文章: