代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C#
】
IMAP 文件夹名称编码 解码
作者:
Alice
/ 发布于
2016/5/11
/
868
// 编码 public class ImapFolderEncoder { public static String encode(String folder) { String rtn = "", base64; int index = 0; Pattern regAsis = Pattern.compile("\\G(?:[\\x20-\\x25\\x27-\\x7e])+"); Pattern reg26 = Pattern.compile("\\G&"); Pattern regEncode = Pattern.compile("\\G(?:[^\\x20-\\x7e])+"); Pattern regEq = Pattern.compile("=+$"); Pattern regSlash = Pattern.compile("\\/"); while (index < folder.length()) { Matcher m; m = regAsis.matcher(folder); if (m.find(index)) { index = index + (m.end() - m.start()); rtn = rtn + m.group(); continue; } m = reg26.matcher(folder); if (m.find(index)) { index = index + (m.end() - m.start()); rtn = rtn + "&-"; continue; } m = regEncode.matcher(folder); if (m.find(index)) { index = index + (m.end() - m.start()); base64 = SimpleUtil.encodeBase64Content(m.group(), "UTF-16BE"); base64 = base64.replaceAll(regEq.pattern(), ""); base64 = base64.replaceAll(regSlash.pattern(), ","); rtn = rtn + "&" + base64 + "-"; continue; } } return rtn; } } // 解码 public class ImapFolderDecoder { public static String decode(String folder) { String rtn = "", base64; int index = 0; Pattern regAsis = Pattern.compile("\\G([^&]+)"); Pattern reg26 = Pattern.compile("\\G\\&-"); Pattern regDecode = Pattern.compile("\\G\\&([A-Za-z0-9+,]+)-?"); Pattern regComma = Pattern.compile(","); while (index < folder.length()) { Matcher m; m = regAsis.matcher(folder); if (m.find(index)) { index = index + (m.end() - m.start()); rtn = rtn + m.group(); continue; } m = reg26.matcher(folder); if (m.find(index)) { index = index + (m.end() - m.start()); rtn = rtn + "&"; continue; } m = regDecode.matcher(folder); if (m.find(index)) { index = index + (m.end() - m.start()); base64 = m.group().substring(1, m.group().length() - 1); base64 = base64.replaceAll(regComma.pattern(), "/"); int mod = base64.length() % 4; int count = 4 - mod; while (count > 0) { base64 += "="; count--; } base64 = SimpleUtil.base64Decode(base64, "UTF-16BE"); rtn = rtn + base64; continue; } } return rtn; } }
试试其它关键字
同语言下
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
可能有用的
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
Alice
贡献的其它代码
(
9
)
.
唤醒app
.
当鼠标移开时已弹出子菜单自动消失
.
加密解密相关
.
仿Discuz文本框弹出层的效果
.
IMAP 文件夹名称编码 解码
.
查看HTML代码
.
Huffuman树
.
判断字符串是否为纯数字
.
GridControl如何显示行号
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3