October 7, 2010 at 5:24 am
hi all,
I have CLR function written in following code,
=======CLR FUNCTION=========
public static string Str2UTF8ASCII(string sMain,string RCSeq)
{
ASCIIEncoding ascii = new ASCIIEncoding();
byte[] byteArray = Encoding.UTF8.GetBytes(sMain);
byte[] asciiArray = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, byteArray);
string finalString = ascii.GetString(asciiArray);
return finalString.Replace("?X?X?", RCSeq);
}
public static byte[] StringToByte(String hex)
{
int NumberChars = hex.Length;
byte[] bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2)
bytes = Convert.ToByte(hex.Substring(i, 2), 16);
return bytes;
}
[Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.None)]
public static string fn_CLR_BytesAsString(string ZipInput, string Replaceto)
{
string strDecompressedDataStream;
strDecompressedDataStream = "";
try
{
Stream InputStream = new MemoryStream(StringToByte(ZipInput));
using (GZipStream Decompress = new GZipStream(InputStream,
CompressionMode.Decompress))
{
MemoryStream OutStream = new MemoryStream();
byte[] buffer = new byte[4096];
int numRead;
while ((numRead = Decompress.Read(buffer, 0, buffer.Length)) != 0)
{
OutStream.Write(buffer, 0, numRead);
}
OutStream.Position = 0;
StreamReader reader = new StreamReader(OutStream);
strDecompressedDataStream = reader.ReadToEnd();
strDecompressedDataStream = Str2UTF8ASCII(strDecompressedDataStream, Replaceto);
}
}
catch
{
strDecompressedDataStream = "-1";
}
finally { }
return strDecompressedDataStream;
}
==========================
after created ASSEMBLY and execute result contain garbage value(?) as follows,
select CONVERT(XML,dbo.fn_CLR_BytesAsString(<my value>,'ObjectTag="')) ssql
Results:
<void property="description">
<string>test b? abc, abc axv tt-wwwwww-ffffffff</string>
</void>
garbage value is "?"
what is the Encoding problem in above CLR function?
Thanks
Tharindu Dhaneenja
Tharindu Dhaneenja.
MCTS,MCITP(SQL Server),OCA(Oracle)
http://www.databaseusergroup.com
Viewing post 1 (of 1 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy