本文整理汇总了C#中System.Text.Encoder.Convert方法的典型用法代码示例。如果您正苦于以下问题:C# Encoder.Convert方法的具体用法?C# Encoder.Convert怎么用?C# Encoder.Convert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Text.Encoder
的用法示例。
在下文中一共展示了Encoder.Convert方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EncoderFallbackExceptions_Convert
private void EncoderFallbackExceptions_Convert (
byte [] bytes,
int testno,
Encoder enc,
EncoderFallbackExceptionTest t,
int block_size)
{
int charsUsed, bytesUsed;
bool completed;
int ce = 0; // current exception
for (int c = 0; c < t.str.Length; ) {
//Console.WriteLine ("test#{0}-2-{1}: c={2}", testno, block_size, c);
try {
int bu = c + block_size > t.str.Length
? t.str.Length - c
: block_size;
enc.Convert (
t.str.ToCharArray (), c, bu,
bytes, 0, bytes.Length,
c + bu >= t.str.Length,
out charsUsed, out bytesUsed,
out completed);
c += charsUsed;
} catch (EncoderFallbackException ex) {
//Console.WriteLine (
// "test#{0}-2-{1}#{2}: Exception (Index={3}, UnknownSurrogate={4})",
// testno, block_size, ce,
// ex.Index, ex.IsUnknownSurrogate ());
Assert.IsTrue (
ce < t.eindex.Length,
String.Format (
"test#{0}-2-{1}#{2}: UNEXPECTED EXCEPTION (Index={3}, UnknownSurrogate={4})",
testno, block_size, ce,
ex.Index,
ex.IsUnknownSurrogate ()));
Assert.IsTrue (
ex.Index + c == t.eindex[ce],
String.Format (
"test#{0}-2-{1}#{2}: Expected exception at {3} not {4}.",
testno, block_size, ce,
t.eindex[ce],
ex.Index + c));
Assert.IsTrue (
!ex.IsUnknownSurrogate (),
String.Format (
"test#{0}-2-{1}#{2}: Expected false not {3} in IsUnknownSurrogate().",
testno, block_size, ce,
ex.IsUnknownSurrogate ()));
if (ex.IsUnknownSurrogate ()) {
Assert.IsTrue (
ex.CharUnknownHigh == t.str[ex.Index + c]
&& ex.CharUnknownLow == t.str[ex.Index + c + 1],
String.Format (
"test#{0}-2-{1}#{2}: expected ({3:X}, {4:X}) not ({5:X}, {6:X}).",
testno, block_size, ce,
t.str[ex.Index + c], t.str[ex.Index + c + 1],
ex.CharUnknownHigh, ex.CharUnknownLow));
c += ex.Index + 2;
} else {
Assert.IsTrue (
ex.CharUnknown == t.str[ex.Index + c],
String.Format (
"test#{0}-2-{1}#{2}: expected ({3:X}) not ({4:X}).",
testno, block_size, ce,
t.str[ex.Index + c],
ex.CharUnknown));
c += ex.Index + 1;
}
enc.Reset ();
ce++;
}
}
Assert.IsTrue (
ce == t.eindex.Length,
String.Format (
"test#{0}-2-{1}: UNEXPECTED SUCCESS (expected {2} exceptions, but happened {3})",
testno, block_size, t.eindex.Length, ce));
}
示例2: StringToByteArray
protected static byte[] StringToByteArray(string str, Encoder enc)
{
var ca = str.ToCharArray();
var ret = new byte[enc.GetByteCount(ca, 0, ca.Length, false)];
int charsUsed, bytesUsed;
bool completed;
enc.Convert(ca, 0, ca.Length, ret, 0, ret.Length, true, out charsUsed, out bytesUsed, out completed);
return ret;
}
示例3: WriteWithUInt16LengthPrefix
private static int WriteWithUInt16LengthPrefix(byte[] buffer, ref int offset, Char[] value, Encoder coder)
{
#if DEBUG
if (buffer == null) throw new ArgumentNullException("buffer");
if (value == null) throw new ArgumentNullException("value");
if (coder == null) throw new ArgumentNullException("coder");
#endif
int ofs = offset;
int count = coder.GetByteCount(value, 0, value.Length, true);
int bytesUsed;
int charsUsed;
bool completed;
Write(buffer, ref ofs, (UInt16)count);
coder.Convert(value, 0, value.Length, buffer, ofs, buffer.Length - ofs, true
, out charsUsed
, out bytesUsed
, out completed);
if (!completed)
throw new ArgumentException(String.Format(
Properties.Resources.Error_BufferOutOfSpace), "buffer");
offset = ofs + bytesUsed;
return bytesUsed + 2;
}