@ -87,7 +87,7 @@ namespace WebSocketSharp
: (ushort) CloseStatusCode.NoStatus;
_reason = len > 2
? Encoding.UTF8.GetString (_rawData.SubArray (2, len - 2))
? _rawData.SubArray (2, len - 2).UTF8Decode ()
: String.Empty;
}
@ -838,6 +838,16 @@ namespace WebSocketSharp
: value.Substring (start + 1, len).Replace ("\\\"", "\"");
internal static string UTF8Decode (this byte[] bytes)
{
try {
return Encoding.UTF8.GetString (bytes);
catch {
return null;
internal static void WriteBytes (this Stream stream, byte[] bytes)
using (var input = new MemoryStream (bytes))
@ -88,7 +88,7 @@ namespace WebSocketSharp
get {
if (!_dataSet) {
_data = _opcode != Opcode.Binary
? convertToString (_rawData)
? _rawData.UTF8Decode ()
: BitConverter.ToString (_rawData);
_dataSet = true;
@ -123,19 +123,5 @@ namespace WebSocketSharp
#endregion
#region Private Methods
private static string convertToString (byte[] rawData)
return Encoding.UTF8.GetString (rawData);