diff --git a/websocket-sharp/PayloadData.cs b/websocket-sharp/PayloadData.cs index 4e629d88..bf1df3ea 100644 --- a/websocket-sharp/PayloadData.cs +++ b/websocket-sharp/PayloadData.cs @@ -153,9 +153,18 @@ namespace WebSocketSharp internal string Reason { get { if (!_reasonSet) { - _reason = _length > 2 - ? _data.SubArray (2, _length - 2).UTF8Decode () - : String.Empty; + if (_length > 2) { + var raw = _data.SubArray (2, _length - 2); + + string reason; + if (!raw.TryGetUTF8DecodedString (out reason)) + reason = String.Empty; + + _reason = reason; + } + else { + _reason = String.Empty; + } _reasonSet = true; }