乙個關於InputStream讀到亂碼的小問題

2021-05-25 10:03:49 字數 610 閱讀 3379

今天在除錯程式的時候碰到乙個問題: 在windows上編寫好的讀取網頁源**的程式,轉到linux上時中文成了亂碼。雖然一開始猜到了是字符集的問題,但是不知道如何入手,亂弄一通也解決不了。最後沒辦法了,只能請教「internet」大神了,一開始用搜尋詞「linux下中文亂碼問題」,結果肯定不行啦,都是關於改系統配置的,但是我又不能改系統配置,所以方法當然不能用了,果斷拋棄。 接下來,嘗試搜尋「inputstream中文亂碼」,結果還真有相近的的文章,只不過文章是解決讀台灣網頁時的正體中文問題,不過我也收到了不少啟發。說了半天,開始講解決方案:

inputstreamreader inputstreamreader = new inputstreamreader(bis,"gbk"); //亮點在這

bufferedreader br = new bufferedreader(inputstreamreader);

在用inputstreamreader將位元組流轉化為字元流時新增乙個字符集就可以了,怎麼樣,很簡單吧。不過說來也慚愧,api上明明有的,哎,只能說自己基礎不紮實啊。

關於String和inputStream的轉換zz

nputstream提供的是位元組流的讀取,而非文字讀取,用reader讀取出來的是char陣列或者string 使用inputstream讀取出來的是byte陣列。reader類及其子類提供的字元流的讀取char,inputstream及其子類提供位元組流的讀取byte,所以 filereader...

關於乙個加法優化的乙個地方

include include include base.h int main int argc,char argv,char envp 下面是彙編 01291000 55 push ebp 01291001 8bec mov ebp,esp 01291003 56 push esi 0129100...

關於autorelease pool乙個較好的理解

如果你能夠真正的理解autorelease,那麼你才是理解了objective c的記憶體管理。autorelease實際上只是把對release的呼叫延遲了,對於每乙個autorelease,系統只是把該object放入了當前的autorelease pool中,當該pool被釋放時,該pool中...