關于io讀取緩存會有中文部分亂碼的問題

今天老板突然說,要給用戶友評做個緩存浮创,不至于一上來就請求數(shù)據(jù)庫忧吟。
可是當斷網(wǎng)的時候,緩存讀取出現(xiàn)了中文亂碼斩披。不是一下子都是亂的溜族,而是個別字是亂碼。
后來網(wǎng)上看到用BufferedReader這個類可以不亂碼垦沉,我就試了試煌抒。沒想到還真不錯,成功了厕倍!

public String getAsStringNew( String key )
{
    BufferedReader  buf     = null;
    StringBuffer    stringBuffer    = new StringBuffer();
    try {
        String line = null;
        buf = new BufferedReader( new InputStreamReader( get( key ) ) );
        while ( (line = buf.readLine() ) != null )
        {
            stringBuffer.append( line );
        }
    } catch ( IOException e ) {
        e.printStackTrace();
    } finally {
        try {
            buf.close();
        } catch ( IOException e ) {
            e.printStackTrace();
        }
    }

    return(stringBuffer.toString() );
}

還有一個方法就是使用解碼寡壮。在緩存的時候轉碼,讀取緩存的時候解碼讹弯。

緩存時:

    public void put(String key, String value) {
        try {
            value = URLEncoder.encode(value, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        DiskLruCache.Editor edit = null;
        BufferedWriter bw = null;
        try {
            edit = editor(key);
            if (edit == null) return;
            OutputStream os = edit.newOutputStream(0);
            bw = new BufferedWriter(new OutputStreamWriter(os));
            bw.write(value);
            edit.commit();//write CLEAN
        } catch (IOException e) {
            e.printStackTrace();
            try {
                //s
                edit.abort();//write REMOVE
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        } finally {
            try {
                if (bw != null)
                    bw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

讀取緩存時:

 public String getAsString(String key) {
        InputStream inputStream = null;
        try {
            //write READ
            inputStream = get(key);
            if (inputStream == null) return null;
            StringBuilder sb = new StringBuilder();
            int len = 0;
            byte[] buf = new byte[128];
            while ((len = inputStream.read(buf)) != -1) {
                sb.append(new String(buf, 0, len));
            }
            return URLDecoder.decode(sb.toString(), "UTF-8");
        } catch (Exception e) {
            e.printStackTrace();
            if (inputStream != null)
                try {
                    inputStream.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
        }
        return null;
    }
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末况既,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子组民,更是在濱河造成了極大的恐慌棒仍,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臭胜,死亡現(xiàn)場離奇詭異莫其,居然都是意外死亡,警方通過查閱死者的電腦和手機耸三,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門榜配,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吕晌,你說我怎么就攤上這事蛋褥。” “怎么了睛驳?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵烙心,是天一觀的道長膜廊。 經(jīng)常有香客問我,道長淫茵,這世上最難降的妖魔是什么爪瓜? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮匙瘪,結果婚禮上铆铆,老公的妹妹穿的比我還像新娘。我一直安慰自己丹喻,他們只是感情好薄货,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碍论,像睡著了一般谅猾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鳍悠,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天税娜,我揣著相機與錄音,去河邊找鬼藏研。 笑死敬矩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蠢挡。 我是一名探鬼主播谤绳,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼袒哥!你這毒婦竟也來了缩筛?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤堡称,失蹤者是張志新(化名)和其女友劉穎瞎抛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體却紧,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡桐臊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了晓殊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片断凶。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖巫俺,靈堂內(nèi)的尸體忽然破棺而出认烁,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布却嗡,位于F島的核電站舶沛,受9級特大地震影響,放射性物質發(fā)生泄漏窗价。R本人自食惡果不足惜如庭,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撼港。 院中可真熱鬧坪它,春花似錦、人聲如沸帝牡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽否灾。三九已至,卻和暖如春鸣奔,著一層夾襖步出監(jiān)牢的瞬間墨技,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工挎狸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扣汪,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓锨匆,卻偏偏與公主長得像崭别,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恐锣,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 主要內(nèi)容 1. 字符編碼理論簡述 本文主要是圍繞Web開發(fā)中涉及到的中文編碼這一常見問題展開茅主,包括了對字符編碼基礎...
    topgunviper閱讀 13,298評論 5 28
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評論 25 707
  • tags:io categories:總結 date: 2017-03-28 22:49:50 不僅僅在JAVA領...
    行徑行閱讀 2,178評論 0 3
  • 昨天晚上兒子完成了日常功課后,按照要求開始看課外讀物玷禽。他拿起了媽媽給買的《米小圈》赫段,異常有趣的讀了起來。念完了第一...
    dexj閱讀 372評論 1 1
  • 我寫這篇文章的時候,是在10月22日00:46分撩银,也就是我最好朋友婚禮過后的3小時多给涕。本人跟隨著老好參加好幾個婚禮...
    Yoki_yang閱讀 795評論 1 2