diff options
author | Ben Harris <ben@tilde.team> | 2020-04-22 10:50:30 -0400 |
---|---|---|
committer | Ben Harris <ben@tilde.team> | 2020-04-22 10:50:30 -0400 |
commit | 06a9882f65a6c2f7e72cc30340c28cf6bb76bcd1 (patch) | |
tree | acddc7b989f3c399192b881c71f00cccd6782d07 /IrcTokens/StatefulDecoder.cs | |
parent | be91164499b263fc4c716c6d44c69f440f8ab634 (diff) |
all stateful tests pass!
Diffstat (limited to 'IrcTokens/StatefulDecoder.cs')
-rw-r--r-- | IrcTokens/StatefulDecoder.cs | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/IrcTokens/StatefulDecoder.cs b/IrcTokens/StatefulDecoder.cs index e094760..2304431 100644 --- a/IrcTokens/StatefulDecoder.cs +++ b/IrcTokens/StatefulDecoder.cs @@ -13,14 +13,26 @@ namespace IrcTokens public Encoding Encoding { - get => _encoding ?? Encoding.UTF8; - set => _encoding = value; + get => _encoding ?? Encoding.GetEncoding(Encoding.UTF8.CodePage, EncoderFallback.ExceptionFallback, + DecoderFallback.ExceptionFallback); + set + { + if (value != null) + _encoding = Encoding.GetEncoding(value.CodePage, EncoderFallback.ExceptionFallback, + DecoderFallback.ReplacementFallback); + } } public Encoding Fallback { - get => _fallback ?? Encoding.GetEncoding("iso-8859-1"); - set => _fallback = value; + get => _fallback ?? Encoding.GetEncoding(Encoding.GetEncoding("iso-8859-1").CodePage, + EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback); + set + { + if (value != null) + _encoding = Encoding.GetEncoding(value.CodePage, EncoderFallback.ReplacementFallback, + DecoderFallback.ReplacementFallback); + } } public string Pending => Encoding.GetString(_buffer); @@ -79,9 +91,6 @@ namespace IrcTokens } } - //_buffer = listLines.Last().ToArray(); - //listLines.RemoveAt(listLines.Count - 1); - var decodeLines = new List<string>(); foreach (var line in listLines.Select(l => l.ToArray())) { |