public string ReadString(int length) { string result = ""; if (this.DataLength == 0) { this.binaryReader.ReadString(); } int num = length * 2; if (num != 0) { int options = 0; long position = this.memoryStream.Position; int dataLength = this.DataLength; byte[] inString = this.binaryReader.ReadBytes(dataLength); this.Seek((int)position); if (this.CharacterSet == 1200 && (this.Encoding & 15) == 1) { options = 268435984; } byte[] array; uint num3; uint num2 = CommonServices.ConvertString(this.CharacterSet, 1200, inString, dataLength, out array, ref num, options, out num3); if (num2 != 0u && 276848725u != num2) { base.ThrowNewMQException(2, 2195); } this.Seek((int)position + (int)num3); result = System.Text.Encoding.Unicode.GetString(array, 0, num); } return(result); }
private void WriteString(string s, bool bWriteUTF) { int options = 0; int characterSet = this.CharacterSet; if (characterSet != 0) { if (characterSet != 1200) { goto IL_6B; } } else { this.CharacterSet = 1200; } if ((this.Encoding & 15) != 1) { this.WriteChars(s); goto IL_12A; } options = 268435744; IL_6B: int byteCount = System.Text.Encoding.Unicode.GetByteCount(s); byte[] array = new byte[byteCount]; System.Text.Encoding.Unicode.GetBytes(s, 0, s.Length, array, 0); int num = 0; byte[] array2; uint num3; uint num2 = CommonServices.ConvertString(1200, this.CharacterSet, array, byteCount, out array2, ref num, options, out num3); if (num2 != 0u) { base.ThrowNewMQException(2, 2195); } if (bWriteUTF) { if (num > 65535) { base.ThrowNewMQException(2, 2190); } else { ushort num4 = (ushort)num; byte[] bytes = BitConverter.GetBytes(num4); Array.Reverse(bytes); this.binaryWriter.Write(bytes); } } this.binaryWriter.Write(array2, 0, num); IL_12A :; }
public static uint ConvertString(int fromCCSID, int toCCSID, byte[] inString, int inLength, out byte[] outString, ref int outLength, int options, out uint bytesConverted) { return(CommonServices.ConvertString(string.Empty, fromCCSID, toCCSID, inString, inLength, out outString, ref outLength, options, out bytesConverted)); }