日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用8位字节的编码格式将字节流安全的转换成String

發布時間:2025/4/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用8位字节的编码格式将字节流安全的转换成String 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們常用的編碼格式有ASCII,Unicode,UTF-8,GB2312等,如何在這些編碼之間安全轉換呢?

最近做郵件系統,采用了OpenPOP組件,這是老外寫的,沒想到用到中文環境中,出了很多問題,主要就是編碼問題。

通常,郵件內容都會經過Base64編碼,在郵件接收端,需要對其解碼,得到字節流,再進一步解碼為正確的字符串,如 Base64.cs文件中:

?

?public?static?class?Base64
????{
????????
public??static?byte[]?DecodeToBytes(string?strText)
????????{
????????????
try
????????????{
????????????????
return?Convert.FromBase64String(strText);
????????????}
????????????
catch?(Exception?e)
????????????{
????????????????Utility.LogError(
"decodeToBytes:"?+?e.Message);
????????????????
????????????????
return?Encoding.Default.GetBytes("\0");
????????????}
????????}

????????
///?<summary>
????????
///?Decoded?a?Base64?encoded?string?using?the?Default?encoding?of?the?system
????????
///?</summary>
????????
///?<param?name="base64Encoded">Source?string?to?decode</param>
????????
///?<returns>A?decoded?string</returns>
????????public?static?string?Decode(string?base64Encoded)
????????{
????????????
//有可能因為二進制問題不能正確解碼?dth,2010.12.15
????????????
//return?Encoding.Default.GetString(DecodeToBytes(base64Encoded));
????????????
//ISO8859-1?字符串,8位,只有這種可以完整保留二進制
????????????Encoding?_encoding?=?Encoding.GetEncoding(28591);
????????????
return?_encoding.GetString(DecodeToBytes(base64Encoded));
????????}

????????
///?<summary>
????????
///?Decoded?a?Base64?encoded?string?using?a?specified?encoding
????????
///?</summary>
????????
///?<param?name="base64Encoded">Source?string?to?decode</param>
????????
///?<param?name="nameOfEncoding">The?name?of?the?encoding?to?use</param>
????????
///?<returns>A?decoded?string</returns>
????????public?static?string?Decode(string?base64Encoded,?string?nameOfEncoding)
????????{
????????????
try
????????????{
????????????????
return?Encoding.GetEncoding(nameOfEncoding).GetString(DecodeToBytes(base64Encoded));
????????????}
????????????
catch(Exception?e)
????????????{
????????????????Utility.LogError(
"decode:?"?+?e.Message);
????????????????
return?Decode(base64Encoded);
????????????}
????????}
????}

?

其中有一個方法Decode,這是原來的代碼:

public?static?string?Decode(string?base64Encoded)
????????{
????????????
???return?Encoding.Default.GetString(DecodeToBytes(base64Encoded));
?????????
}

原作者使用了 Encoding.Default 編碼格式來獲取字符串,在英文環境或許沒有問題,但如果發信方用的編碼格式跟你不一樣,這樣就會出問題,比如對方是UTF-8編碼,而自己的默認編碼是GB2312。

另外一種情況就是對于Base64編碼的二進制數據,比如郵件中的圖片等,原代碼的方式更是成問題,我們的Encoding.Default 編碼會破壞原始的二進制字節信息,但這些信息又想作為字符串在系統中使用,該怎么辦呢?

二進制字節都是8位編碼的,只有采用8位編碼格式的方案才可以完整保留二進制數據。在所有的系統編碼中,ISO8859-1 是8位編碼,所以我們采用它來作為系統中

byte[] <=> String

轉換的橋梁,我對原始代碼做了修改,成為下面的樣子:

?public?static?string?Decode(string?base64Encoded)
????????{
????????????
//有可能因為二進制問題不能正確解碼?bluedoctor,2010.12.15
????????????
//return?Encoding.Default.GetString(DecodeToBytes(base64Encoded));
????????????
//ISO8859-1?字符串,8位,只有這種可以完整保留二進制
????????????Encoding?_encoding?=?Encoding.GetEncoding(28591);
????????????
return?_encoding.GetString(DecodeToBytes(base64Encoded));
????????}

對系統中所有類似的地方進行修改,OpenPOP組件終于可以安全的處理多種格式的郵件了。

?

總結

以上是生活随笔為你收集整理的使用8位字节的编码格式将字节流安全的转换成String的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 原创少妇半推半就88av | 91看视频 | 永久国产 | 毛片无遮挡 | 亚洲精品少妇一区二区 | 欧美最顶级a∨艳星 | 69精品久久久久久久 | 在线视频 中文字幕 | 成人免费视频国产免费麻豆 | 国产极品尤物 | 91精品国产91久久久久青草 | 四虎精品影视 | 2020狠狠干 | 美女黄色一级片 | 六十路息与子猛烈交尾 | 99riAv国产精品无码鲁大师 | 日韩在线小视频 | www亚洲天堂 | 波多野结衣一区二区三区在线 | 欧美国产高潮xxxx1819 | 免费成人在线观看视频 | 中文字幕日韩专区 | 中文字幕在线天堂 | 国产亚洲精品成人无码精品网站 | 欧美一区二区三区视频在线 | 流白浆视频 | 天天做天天爱天天爽综合网 | 中文av一区二区三区 | 四虎黄色片 | 深夜成人在线观看 | 性一级视频 | 国产成人无码精品久久久久久 | 国产免费一区二区三区视频 | 青娱乐在线免费视频 | 奇米一区二区三区 | 亚洲涩综合 | 欧美一级做a爰片免费视频 成人激情在线观看 | 亚洲国产精品成人综合 | 婷婷玖玖| 精品久久久久成人码免费动漫 | 亲吻刺激视频 | 伊人青青草原 | 亚洲精品一区二区三区四区乱码 | 久久国产麻豆 | 清纯唯美第一页 | 伊人五月综合 | 亚洲无色 | 天天色宗合 | 青青青草视频 | 久久嫩草视频 | 精品亚洲一区二区三区四区五区高 | 99ri精品| 国产91精品久久久久久久 | 91 高清 在线 制服 偷拍 | 丁香啪啪综合成人亚洲 | 亚洲精品视频国产 | 黄色av一区二区 | 一级片欧美 | 日日摸夜夜添狠狠添欧美 | 亚洲高清毛片 | 中文在线a在线 | 影音先锋三级 | 亚洲女同志亚洲女同女播放 | 国产精品xxx | 日韩欧美中文一区 | 蜜桃成人无码区免费视频网站 | 国产91av视频| 拍真实国产伦偷精品 | 欧美激情亚洲 | 亚洲网址在线观看 | www.欧美色图 | 被灌满精子的波多野结衣 | 日本久久不卡 | 在线高清免费观看 | 精品一区二区三区毛片 | 91av免费观看 | 免费日韩网站 | 超碰超在线 | 天天天天天天天天干 | 韩国美女av| 都市激情校园春色亚洲 | 欧美综合在线观看 | 日本一区久久 | www.狠狠干| 成人免费在线网站 | 亚洲一级片在线观看 | 成人无码av片在线观看 | 青草av在线 | 免费在线性爱视频 | 狠狠噜噜 | 2019亚洲天堂| 国产成人免费看 | 欧美精品色婷婷五月综合 | a国产免费 | 亚洲一区中文字幕 | 嫩草影院菊竹影院 | 色视屏 | 国产精品超碰 | 午夜黄色在线观看 |