Encoding 类

.NET Framework 4 

表示字符编码。

命名空间:  System.Text
程序集:  mscorlib(在 mscorlib.dll 中)

语法

 

C#

 
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Encoding : ICloneable

Encoding 类型公开以下成员。

构造函数


显示: 继承 保护

  名称 说明
Encoding() 初始化 Encoding 类的新实例。
Encoding(Int32) 初始化对应于指定代码页的 Encoding 类的新实例。

属性


显示: 继承 保护

  名称 说明
ASCII 获取 ASCII(7 位)字符集的编码。
BigEndianUnicode 获取使用 Big Endian 字节顺序的 UTF-16 格式的编码。
BodyName 在派生类中重写时,获取可与邮件代理正文标记一起使用的当前编码的名称。
CodePage 在派生类中重写时,获取当前 Encoding 的代码页标识符。
DecoderFallback 获取或设置当前 Encoding 对象的 DecoderFallback 对象。
Default 获取操作系统的当前 ANSI 代码页的编码。
EncoderFallback 获取或设置当前 Encoding 对象的 EncoderFallback 对象。
EncodingName 在派生类中重写时,获取当前编码的可读说明。
HeaderName 在派生类中重写时,获取可与邮件代理标题标记一起使用的当前编码的名称。
IsBrowserDisplay 在派生类中重写时,获取一个值,该值指示浏览器客户端是否可以使用当前的编码显示内容。
IsBrowserSave 在派生类中重写时,获取一个值,该值指示浏览器客户端是否可以使用当前的编码保存内容。
IsMailNewsDisplay 在派生类中重写时,获取一个值,该值指示邮件和新闻客户端是否可以使用当前的编码显示内容。
IsMailNewsSave 在派生类中重写时,获取一个值,该值指示邮件和新闻客户端是否可以使用当前的编码保存内容。
IsReadOnly 在派生类中重写时,获取一个值,该值指示当前的编码是否为只读。
IsSingleByte 在派生类中重写时,获取一个值,该值指示当前的编码是否使用单字节码位。
Unicode 获取使用 Little-Endian 字节顺序的 UTF-16 格式的编码。
UTF32 获取使用 Little-Endian 字节顺序的 UTF-32 格式的编码。
UTF7 获取 UTF-7 格式的编码。
UTF8 获取 UTF-8 格式的编码。
WebName 在派生类中重写时,获取在 Internet 编号分配管理机构 (IANA) 注册的当前编码的名称。
WindowsCodePage 在派生类中重写时,获取与当前编码最紧密对应的 Windows 操作系统代码页。

方法


显示: 继承 保护

  名称 说明
Clone 当在派生类中重写时,创建当前 Encoding 对象的一个浅表副本。
Convert(Encoding, Encoding, Byte[]) 将整个字节数组从一种编码转换为另一种编码。
Convert(Encoding, Encoding, Byte[], Int32, Int32) 将字节数组内某个范围的字节从一种编码转换为另一种编码。
Equals 确定指定的 Object 是否等于当前实例。 (重写 Object.Equals(Object)。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetByteCount(Char[]) 在派生类中重写时,计算对指定字符数组中的所有字符进行编码所产生的字节数。
GetByteCount(String) 在派生类中重写时,计算对指定字符串中的字符进行编码所产生的字节数。
GetByteCount(Char*, Int32) 在派生类中重写时,计算对一组字符(从指定的字符指针处开始)进行编码所产生的字节数。
GetByteCount(Char[], Int32, Int32) 在派生类中重写时,计算对指定字符数组中的一组字符进行编码所产生的字节数。
GetBytes(Char[]) 在派生类中重写时,将指定字符数组中的所有字符编码为一个字节序列。
GetBytes(String) 在派生类中重写时,将指定字符串中的所有字符编码为一个字节序列。
GetBytes(Char[], Int32, Int32) 在派生类中重写时,将指定字符数组中的一组字符编码为一个字节序列。
GetBytes(Char*, Int32, Byte*, Int32) 在派生类中重写时,将一组字符(从指定的字符指针开始)编码为一个字节序列,并从指定的字节指针开始存储该字节序列。
GetBytes(Char[], Int32, Int32, Byte[], Int32) 在派生类中重写时,将指定字符数组中的一组字符编码为指定的字节数组。
GetBytes(String, Int32, Int32, Byte[], Int32) 在派生类中重写时,将指定字符串中的一组字符编码为指定的字节数组。
GetCharCount(Byte[]) 在派生类中重写时,计算对指定字节数组中的所有字节进行解码所产生的字符数。
GetCharCount(Byte*, Int32) 在派生类中重写时,计算对字节序列(从指定的字节指针开始)进行解码所产生的字符数。
GetCharCount(Byte[], Int32, Int32) 在派生类中重写时,计算对字节序列(从指定字节数组开始)进行解码所产生的字符数。
GetChars(Byte[]) 在派生类中重写时,将指定字节数组中的所有字节解码为一组字符。
GetChars(Byte[], Int32, Int32) 在派生类中重写时,将指定字节数组中的一个字节序列解码为一组字符。
GetChars(Byte*, Int32, Char*, Int32) 在派生类中重写时,将一个字节序列(从指定的字节指针开始)解码为一组字符,并从指定的字符指针开始存储该组字符。
GetChars(Byte[], Int32, Int32, Char[], Int32) 在派生类中重写时,将指定字节数组中的字节序列解码为指定的字符数组。
GetDecoder 在派生类中重写时,获取一个解码器,该解码器将已编码的字节序列转换为字符序列。
GetEncoder 在派生类中重写时,获取一个解码器,该解码器将 Unicode 字符序列转换为已编码的字节序列。
GetEncoding(Int32) 返回与指定代码页标识符关联的编码。
GetEncoding(String) 返回与指定代码页名称关联的编码。
GetEncoding(Int32, EncoderFallback, DecoderFallback) 返回与指定代码页标识符关联的编码。 参数指定一个错误处理程序,用于处理无法编码的字符和无法解码的字节序列。
GetEncoding(String, EncoderFallback, DecoderFallback) 返回与指定代码页名称关联的编码。 参数指定一个错误处理程序,用于处理无法编码的字符和无法解码的字节序列。
GetEncodings 返回包含所有编码的数组。
GetHashCode 返回当前实例的哈希代码。 (重写 Object.GetHashCode()。)
GetMaxByteCount 在派生类中重写时,计算对指定数目的字符进行编码所产生的最大字节数。
GetMaxCharCount 在派生类中重写时,计算对指定数目的字节进行解码时所产生的最大字符数。
GetPreamble 在派生类中重写时,返回指定所用编码的字节序列。
GetString(Byte[]) 在派生类中重写时,将指定字节数组中的所有字节解码为一个字符串。
GetString(Byte[], Int32, Int32) 在派生类中重写时,将指定字节数组中的一个字节序列解码为一个字符串。
GetType 获取当前实例的 Type。 (继承自 Object。)
IsAlwaysNormalized() 使用默认范式获取一个值,该值指示当前编码是否始终被规范化。
IsAlwaysNormalized(NormalizationForm) 在派生类中重写时,使用指定范式获取一个值,该值指示当前编码是否始终被规范化。
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
ToString 返回表示当前对象的字符串。 (继承自 Object。)

备注


编码是一个将一组 Unicode 字符转换为一个字节序列的过程。 而解码是将一个编码字节序列转换为一组 Unicode 字符的过程。 有关 Encoding 所支持的 Unicode 转换格式 (UTF) 和其他编码的信息,请参见.NET Framework 中的字符编码

请注意,Encoding 用于对 Unicode 字符进行操作,而不是对任意二进制数据(如字节数组)进行操作。 如果您的应用程序必须将任意二进制数据编码为文本,则该应用程序应使用由 Convert.ToBase64CharArray 之类的方法实现的协议(如 uuencode)。

.NET Framework 提供以下 Encoding 类的实现以支持当前 Unicode 编码和其他编码:

  • ASCIIEncoding 将 Unicode 字符编码为单个 7 位 ASCII 字符。 此编码仅支持 U+0000 和 U+007F 之间的字符值。 代码页 20127。 还可通过 ASCII 属性获得。

  • UTF7Encoding 使用 UTF-7 编码对 Unicode 字符进行编码。 此编码支持所有 Unicode 字符值。 代码页 65000。 还可通过 UTF7 属性获得。

  • UTF8Encoding 使用 UTF-8 编码对 Unicode 字符进行编码。 此编码支持所有 Unicode 字符值。 代码页 65001。 还可通过 UTF8 属性获得。

  • UnicodeEncoding 使用 UTF-16 编码对 Unicode 字符进行编码。 它支持 Little Endian 和 Big Endian 字节顺序。 还可通过 Unicode 属性和 BigEndianUnicode 属性获得。

  • UTF32Encoding 使用 UTF-32 编码对 Unicode 字符进行编码。 支持 Little-Endian(代码页 12000)和 Big-Endian(代码页 12001)字节顺序。 还可通过 UTF32 属性获得。

Encoding 类主要用于在不同的编码和 Unicode 之间进行转换。 通常,对于您的应用程序来说,某个派生的 Unicode 类是不错的选择。

您的应用程序使用 GetEncoding 方法来获得其他编码。 它们应使用 GetEncodings 方法来获得所有编码的列表。

下表列出了受支持的编码以及与这些编码关联的代码页。 最后一列中的星号指示 .NET Framework 本身即支持该代码页,而不需考虑基础平台。

 

代码页

Name

显示名称

 

37

IBM037

IBM EBCDIC(美国 - 加拿大)

 

437

IBM437

OEM 美国

 

500

IBM500

IBM EBCDIC(国际)

 

708

ASMO-708

阿拉伯字符 (ASMO 708)

 

720

DOS-720

阿拉伯字符 (DOS)

 

737

ibm737

希腊字符 (DOS)

 

775

ibm775

波罗的海字符 (DOS)

 

850

ibm850

西欧字符 (DOS)

 

852

ibm852

中欧字符 (DOS)

 

855

IBM855

OEM 西里尔语

 

857

ibm857

土耳其字符 (DOS)

 

858

IBM00858

OEM 多语言拉丁语 I

 

860

IBM860

葡萄牙语 (DOS)

 

861

ibm861

冰岛语 (DOS)

 

862

DOS-862

希伯来字符 (DOS)

 

863

IBM863

加拿大法语 (DOS)

 

864

IBM864

阿拉伯字符 (864)

 

865

IBM865

北欧字符 (DOS)

 

866

cp866

西里尔字符 (DOS)

 

869

ibm869

现代希腊字符 (DOS)

 

870

IBM870

IBM EBCDIC(多语言拉丁语 2)

 

874

windows-874

泰语 (Windows)

 

875

cp875

IBM EBCDIC(现代希腊语)

 

932

shift_jis

日语 (Shift-JIS)

 

936

gb2312

简体中文 (GB2312)

*

949

ks_c_5601-1987

朝鲜语

 

950

big5

繁体中文 (Big5)

 

1026

IBM1026

IBM EBCDIC(土耳其拉丁语 5)

 

1047

IBM01047

IBM 拉丁语 1

 

1140

IBM01140

IBM EBCDIC(美国 - 加拿大 - 欧洲)

 

1141

IBM01141

IBM EBCDIC(德国 - 欧洲)

 

1142

IBM01142

IBM EBCDIC(丹麦 - 挪威 - 欧洲)

 

1143

IBM01143

IBM EBCDIC(芬兰 - 瑞典 - 欧洲)

 

1144

IBM01144

IBM EBCDIC(意大利 - 欧洲)

 

1145

IBM01145

IBM EBCDIC(西班牙 - 欧洲)

 

1146

IBM01146

IBM EBCDIC(英国 - 欧洲)

 

1147

IBM01147

IBM EBCDIC(法国 - 欧洲)

 

1148

IBM01148

IBM EBCDIC(国际 - 欧洲)

 

1149

IBM01149

IBM EBCDIC(冰岛语 - 欧洲)

 

1200

utf-16

Unicode

*

1201

unicodeFFFE

Unicode (Big-Endian)

*

1250

windows-1250

中欧字符 (Windows)

 

1251

windows-1251

西里尔字符 (Windows)

 

1252

Windows-1252

西欧字符 (Windows)

*

1253

windows-1253

希腊字符 (Windows)

 

1254

windows-1254

土耳其字符 (Windows)

 

1255

windows-1255

希伯来字符 (Windows)

 

1256

windows-1256

阿拉伯字符 (Windows)

 

1257

windows-1257

波罗的海字符 (Windows)

 

1258

windows-1258

越南字符 (Windows)

 

1361

Johab

朝鲜语 (Johab)

 

10000

macintosh

西欧字符 (Mac)

 

10001

x-mac-japanese

日语 (Mac)

 

10002

x-mac-chinesetrad

繁体中文 (Mac)

 

10003

x-mac-korean

朝鲜语 (Mac)

*

10004

x-mac-arabic

阿拉伯字符 (Mac)

 

10005

x-mac-hebrew

希伯来字符 (Mac)

 

10006

x-mac-greek

希腊字符 (Mac)

 

10007

x-mac-cyrillic

西里尔字符 (Mac)

 

10008

x-mac-chinesesimp

简体中文 (Mac)

*

10010

x-mac-romanian

罗马尼亚语 (Mac)

 

10017

x-mac-ukrainian

乌克兰语 (Mac)

 

10021

x-mac-thai

泰语 (Mac)

 

10029

x-mac-ce

中欧字符 (Mac)

 

10079

x-mac-icelandic

冰岛语 (Mac)

 

10081

x-mac-turkish

土耳其字符 (Mac)

 

10082

x-mac-croatian

克罗地亚语 (Mac)

 

12000

utf-32

Unicode (UTF-32)

*

12001

utf-32BE

Unicode (UTF-32 Big-Endian)

*

20000

x-Chinese-CNS

繁体中文 (CNS)

 

20001

x-cp20001

TCA 台湾

 

20002

x-Chinese-Eten

繁体中文 (Eten)

 

20003

x-cp20003

IBM5550 台湾

 

20004

x-cp20004

TeleText 台湾

 

20005

x-cp20005

Wang 台湾

 

20105

x-IA5

西欧字符 (IA5)

 

20106

x-IA5-German

德语 (IA5)

 

20107

x-IA5-Swedish

瑞典语 (IA5)

 

20108

x-IA5-Norwegian

挪威语 (IA5)

 

20127

us-ascii

US-ASCII

*

20261

x-cp20261

T.61

 

20269

x-cp20269

ISO-6937

 

20273

IBM273

IBM EBCDIC(德国)

 

20277

IBM277

IBM EBCDIC(丹麦 - 挪威)

 

20278

IBM278

IBM EBCDIC(芬兰 - 瑞典)

 

20280

IBM280

IBM EBCDIC(意大利)

 

20284

IBM284

IBM EBCDIC(西班牙)

 

20285

IBM285

IBM EBCDIC(英国)

 

20290

IBM290

IBM EBCDIC(日语片假名)

 

20297

IBM297

IBM EBCDIC(法国)

 

20420

IBM420

IBM EBCDIC(阿拉伯语)

 

20423

IBM423

IBM EBCDIC(希腊语)

 

20424

IBM424

IBM EBCDIC(希伯来语)

 

20833

x-EBCDIC-KoreanExtended

IBM EBCDIC(朝鲜语扩展)

 

20838

IBM-Thai

IBM EBCDIC(泰语)

 

20866

koi8-r

西里尔字符 (KOI8-R)

 

20871

IBM871

IBM EBCDIC(冰岛语)

 

20880

IBM880

IBM EBCDIC(西里尔俄语)

 

20905

IBM905

IBM EBCDIC(土耳其语)

 

20924

IBM00924

IBM 拉丁语 1

 

20932

EUC-JP

日语(JIS 0208-1990 和 0212-1990)

 

20936

x-cp20936

简体中文 (GB2312-80)

*

20949

x-cp20949

朝鲜语 Wansung

*

21025

cp1025

IBM EBCDIC(西里尔塞尔维亚 - 保加利亚语)

 

21866

koi8-u

西里尔字符 (KOI8-U)

 

28591

iso-8859-1

西欧字符 (ISO)

*

28592

iso-8859-2

中欧字符 (ISO)

 

28593

iso-8859-3

拉丁语 3 (ISO)

 

28594

iso-8859-4

波罗的海字符 (ISO)

 

28595

iso-8859-5

西里尔字符 (ISO)

 

28596

iso-8859-6

阿拉伯字符 (ISO)

 

28597

iso-8859-7

希腊字符 (ISO)

 

28598

iso-8859-8

希伯来字符 (ISO-Visual)

*

28599

iso-8859-9

土耳其字符 (ISO)

 

28603

iso-8859-13

爱沙尼亚语 (ISO)

 

28605

iso-8859-15

拉丁语 9 (ISO)

 

29001

x-Europa

欧罗巴

 

38598

iso-8859-8-i

希伯来字符 (ISO-Logical)

*

50220

iso-2022-jp

日语 (JIS)

*

50221

csISO2022JP

日语(JIS- 允许 1 字节假名)

*

50222

iso-2022-jp

日语(JIS- 允许 1 字节假名 - SO/SI)

*

50225

iso-2022-kr

朝鲜语 (ISO)

*

50227

x-cp50227

简体中文 (ISO-2022)

*

51932

euc-jp

日语 (EUC)

*

51936

EUC-CN

简体中文 (EUC)

*

51949

euc-kr

朝鲜语 (EUC)

*

52936

hz-gb-2312

简体中文 (HZ)

*

54936

GB18030

简体中文 (GB18030)

*

57002

x-iscii-de

ISCII 梵文

*

57003

x-iscii-be

ISCII 孟加拉语

*

57004

x-iscii-ta

ISCII 泰米尔语

*

57005

x-iscii-te

ISCII 泰卢固语

*

57006

x-iscii-as

ISCII 阿萨姆语

*

57007

x-iscii-or

ISCII 奥里雅语

*

57008

x-iscii-ka

ISCII 卡纳达语

*

57009

x-iscii-ma

ISCII 马拉雅拉姆字符

*

57010

x-iscii-gu

ISCII 古吉拉特字符

*

57011

x-iscii-pa

ISCII 旁遮普字符

*

65000

utf-7

Unicode (UTF-7)

*

65001

utf-8

Unicode (UTF-8)

*

如果要转换的数据仅存在于连续块(如从流中读取的数据)中,或者如果数据量很大,需要划分为较小的块,则应用程序应当使用由某个派生类的 GetDecoder 方法提供的 Decoder 或由该派生类的 GetEncoder 方法提供的 Encoder

UTF-16 和 UTF-32 编码器可以使用 Big-Endian 字节顺序(从最高有效字节开始),也可以使用 Little-Endian 字节顺序(从最低有效字节开始)。 例如,大写拉丁字母 A (U+0041) 的序列化结果(十六进制)如下所示:

  • UTF-16 Big-Endian 字节顺序:00 41

  • UTF-16 Little-Endian 字节顺序:41 00

  • UTF-32 Big-Endian 字节顺序:00 00 00 41

  • UTF-32 Little-Endian 字节顺序:41 00 00 00

通常,使用本机字节顺序存储 Unicode 字符的效率更高。 例如,在 Little-endian 平台(如 Intel 计算机)上最好使用 Little-endian 字节顺序。

GetPreamble 方法检索一个包括字节顺序标记 (BOM) 的字节数组。 如果将此字节数组作为编码流的前缀,将有助于解码器识别所用的编码格式。

有关字节顺序和字节顺序标记的更多信息,请参见位于 Unicode home page(Unicode 主页)上的“The Unicode Standard”(Unicode 标准)。

请注意,编码类允许错误进行如下更改:

  • 在不提示的情况下更改为“?”字符。

  • 使用“最佳匹配”字符。

  • 通过将 EncoderFallbackDecoderFallback 类与 U+FFFD Unicode 替换字符结合使用来更改为特定于应用程序的行为。

建议让您的应用程序针对所有的数据流错误引发异常。 应用程序要么在适用时使用“throwonerror”标志,要么使用 EncoderExceptionFallbackDecoderExceptionFallback 类。 通常不建议使用最佳匹配回退,因为它可能会导致数据丢失或发生冲突,而且比简单字符替换慢。 对于 ANSI 编码,最佳匹配行为是默认行为。

示例


下面的示例将字符串从一种编码转换为另一种编码。

注意

byte[] 数组在此示例中是唯一包含编码数据的类型。 .NET Char 和字符串类型是本身 Unicode,因此 GetChars 调用将数据再解码为 Unicode。

using System;
using System.Text; class Example
{
static void Main()
{
string unicodeString = "This string contains the unicode character Pi (\u03a0)"; // Create two different encodings.
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode; // Convert the string into a byte array.
byte[] unicodeBytes = unicode.GetBytes(unicodeString); // Perform the conversion from one encoding to the other.
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes); // Convert the new byte[] into a char[] and then into a string.
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
string asciiString = new string(asciiChars); // Display the strings created before and after the conversion.
Console.WriteLine("Original string: {0}", unicodeString);
Console.WriteLine("Ascii converted string: {0}", asciiString);
}
}
// The example displays the following output:
// Original string: This string contains the unicode character Pi (Π)
// Ascii converted string: This string contains the unicode character Pi (?) 
 

CodePage------Encoding 类支持的编码以及与这些编码关联的代码页(CodePage)的更多相关文章

  1. 代码页(CodePage)列表

    代码页编号    国家地区或语言37                 IBM037    IBM EBCDIC (US-Canada)    437                 IBM437    ...

  2. 关于 cmd 控制台默认代码页编码的几种方法

    造成的中文及特殊字符乱码. 第一种:临时性修改编码 使用 chcp 命令,例如 chcp 65001 ,这回将当前代码页变为 utf-8编码,不过这种方式在关闭 cmd 之后会自动失效. 常用的编码及 ...

  3. c#字符编码,System.Text.Encoding类,字符编码大全:如Unicode编码、GB18030、UTF-8,UTF-7,GB2312,ASCII,UTF32,Big5

    本页列出来目前window下所有支持的字符编码  ---c#通过 System.Text.Encoding.GetEncodings()获取,里面可以对其进行查询,筛选,对同一个字符,在不同编码进行查 ...

  4. 【编码】_C#中编码名称(Name)与页面标识(CodePage)的关系_编码gb2312的获取

    在写C#代码时,发现VS提供没有直接提供gb2312的中文编码, 所以,需要找到对应编码名称的codepage来调用想要的编码方式. 下面是微软编程提供的所有编码信息,包括编码名称,编码代码页标识符, ...

  5. 编码问题 php字符编码转换类

    各种平台和软件打开显示的编码问题,需要使用不同的编码,根据我们不同的需求. php 字符编码转换类,支持ANSI.Unicode.Unicode big endian.UTF-8.UTF-8+Bom ...

  6. Ruby Encoding类

    Encoding类  内部编码  IO对象内部处理时候的编码   外部编码  IO对象对外输出的时候的编码  输入  外部字符与自己的外部编码对比(没设定的默认                     ...

  7. Android开发调试日志工具类[支持保存到SD卡]

    直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...

  8. 在RHEL上安装Thrift(支持C++)的若干问题 » 编码无悔 / Intent & Focused

    在RHEL上安装Thrift(支持C++)的若干问题 » 编码无悔 / Intent & Focused [原创]在RHEL上安装Thrift(支持C++)的若干问题    2010年12月1 ...

  9. 支持异步写入的日志类,支持Framework2.0

    因为工作需要需要在XP上运行一个C#编写的Winform插件,我就用Framework2.0,因为存在接口交互所以想保留交易过程的入参出参. 考虑到插件本身实施的因素,就没有使用Log4.NLog等成 ...

随机推荐

  1. Hadoop fs命令详解

    本文非原创,转载自http://www.superwu.cn/2013/07/31/312 另外参考:http://www.blogjava.net/changedi/archive/2013/08/ ...

  2. web浏览器下的缓存 - Etag

    设置浏览器缓存的几种方法: Last-Modified : 服务器上文件的最后修改时间 Etag  : 文件标识 Expiers : 本地缓存目录中文件过期的时间 ( 由服务器指定具体的时间 ) Ca ...

  3. 【Delphi】窗体阴影

    procedure TForm1.FormCreate(Sender: TObject); begin SetClassLong(Handle, GCL_STYLE, GetClassLong(Han ...

  4. 通过 struct 成员地址 获取 struct 结构体地址

    1. 问题描述: 现在定义了一个结构体: struct Foo { int a; int b; }; Foo foo; 假如由于函数传参等原因,现在程序只能拿到 foo.b 的地址,这时想通过某种方法 ...

  5. butterknife7.0.1使用

    1.官网:http://jakewharton.github.io/butterknife/ Introduction Annotate fields with @Bind and a view ID ...

  6. Who needs an architect?---Martin Fowler

    英文及译文下载链接:http://pan.baidu.com/share/link?shareid=163291504&uk=1428554614 1.文章主题总结 首先我们从文章的几个小标题 ...

  7. Shiro 缓存失效以后的一个问题

    shiro 1.2.2和1.2.3 为shiro设置了缓存,但是当服务器运行几个小时后,页面判断 <shiro:hasPermission name="admin"> ...

  8. mybatis 中mapper 的namespace有什么用

    原文:http://zhidao.baidu.com/link?url=ovFuTn7-02s7Qd40BOnwHImuPxNg8tXJF3nrx1SSngNY5e0CaSP1E4C9E5J6Xv5f ...

  9. 【高斯消元】BZOJ 1770: [Usaco2009 Nov]lights 燈

    Description 貝希和她的閨密們在她們的牛棚中玩遊戲.但是天不從人願,突然,牛棚的電源跳閘了,所有的燈都被關閉了.貝希是一個很膽小的女生,在伸手不見拇指的無盡的黑暗中,她感到驚恐,痛苦與絕望. ...

  10. NOI2015考试小结

    这次NOI2015有幸获得金牌考进了国家集训队,意味着我的OI退役时间既省选之后有延迟了好几个月,又有了新的目标吧. 先说一下考试之外的感受吧,学军宿舍很牛X,接待NOIers而不提供插座,唯一可以用 ...