本文整理汇总了C#中Portable.Text.Encoding.GetString方法的典型用法代码示例。如果您正苦于以下问题:C# Portable.Text.Encoding.GetString方法的具体用法?C# Portable.Text.Encoding.GetString怎么用?C# Portable.Text.Encoding.GetString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Portable.Text.Encoding
的用法示例。
在下文中一共展示了Portable.Text.Encoding.GetString方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetText
/// <summary>
/// Gets the decoded text content using the provided charset encoding to
/// override the charset specified in the Content-Type parameters.
/// </summary>
/// <remarks>
/// Uses the provided charset encoding to convert the raw text content
/// into a unicode string, overriding any charset specified in the
/// Content-Type header.
/// </remarks>
/// <returns>The decoded text.</returns>
/// <param name="encoding">The charset encoding to use.</param>
/// <exception cref="System.ArgumentNullException">
/// <paramref name="encoding"/> is <c>null</c>.
/// </exception>
public string GetText (Encoding encoding)
{
if (encoding == null)
throw new ArgumentNullException ("encoding");
if (ContentObject == null)
return string.Empty;
using (var memory = new MemoryStream ()) {
ContentObject.DecodeTo (memory);
#if PORTABLE
var buffer = memory.ToArray ();
#else
var buffer = memory.GetBuffer ();
#endif
return encoding.GetString (buffer, 0, (int) memory.Length);
}
}
示例2: EncodeReceivedHeader
static byte[] EncodeReceivedHeader (ParserOptions options, FormatOptions format, Encoding charset, string field, string value)
{
var tokens = new List<ReceivedTokenValue> ();
var rawValue = charset.GetBytes (value);
var encoded = new StringBuilder ();
int lineLength = field.Length + 1;
bool date = false;
int index = 0;
int count = 0;
while (index < rawValue.Length) {
ReceivedTokenValue token = null;
int startIndex = index;
if (!ParseUtils.SkipCommentsAndWhiteSpace (rawValue, ref index, rawValue.Length, false) || index >= rawValue.Length) {
tokens.Add (new ReceivedTokenValue (startIndex, index - startIndex));
break;
}
while (index < rawValue.Length && !rawValue[index].IsWhitespace ())
index++;
var atom = charset.GetString (rawValue, startIndex, index - startIndex);
for (int i = 0; i < ReceivedTokens.Length; i++) {
if (atom == ReceivedTokens[i].Atom) {
ReceivedTokens[i].Skip (rawValue, ref index);
if (ParseUtils.SkipCommentsAndWhiteSpace (rawValue, ref index, rawValue.Length, false)) {
if (index < rawValue.Length && rawValue[index] == (byte) ';') {
date = true;
index++;
}
}
token = new ReceivedTokenValue (startIndex, index - startIndex);
break;
}
}
if (token == null) {
if (ParseUtils.SkipCommentsAndWhiteSpace (rawValue, ref index, rawValue.Length, false)) {
while (index < rawValue.Length && !rawValue[index].IsWhitespace ())
index++;
}
token = new ReceivedTokenValue (startIndex, index - startIndex);
}
tokens.Add (token);
ParseUtils.SkipWhiteSpace (rawValue, ref index, rawValue.Length);
if (date && index < rawValue.Length) {
// slurp up the date (the final token)
tokens.Add (new ReceivedTokenValue (index, rawValue.Length - index));
break;
}
}
foreach (var token in tokens) {
var text = charset.GetString (rawValue, token.StartIndex, token.Length).TrimEnd ();
if (count > 0 && lineLength + text.Length + 1 > format.MaxLineLength) {
encoded.Append (format.NewLine);
encoded.Append ('\t');
lineLength = 1;
count = 0;
} else {
encoded.Append (' ');
lineLength++;
}
lineLength += text.Length;
encoded.Append (text);
count++;
}
encoded.Append (format.NewLine);
return charset.GetBytes (encoded.ToString ());
}