måndag 24 september 2012

Mycket på jobbet idag. Base64 encode problem

Idag har det blivit felsöka delux på jobbet. En SQL server som skulle ha datatyp Nvarchar(255) på en kolumn i en tabell har helt utan förvarning börjat skickat Base64 enkodat data när vi importerar därifrån så istället för lättförståliga namn så fick vi en hel sträng med skräp.












Nu när vi hittat felet blev det till att försöka få tillbaks det till en sträng som det går att utläsa värdet ifrån. Fick lite hjälp med en sån här fullösning så länge.

public static string changeNameEncoding(string Base64Decode)

  {
 
       Base64Decode = Base64Decode.TrimEnd();
       Base64Decode = Base64Decode.TrimStart();
       Encoding jpEnc = Encoding.GetEncoding("ISO-2022-JP");

       byte[] baseBytes = Convert.FromBase64String(Base64Decode);

       string yy = jpEnc.GetString(baseBytes);

       yy = yy.Replace("\0", string.Empty);

       return yy;

  }

Nu är det bara att hitta vad det är som orsakar felet för det är inte alla värden som har blivit enkodat till Base64 av någon konstig anledning.
Mycket ska man få vara med om innan man dör.

Inga kommentarer: