By support at mars 28, 2008 18:26
Filed Under:
Jag har en kund som håller på att översätta sina java webapplikationer till UTF-8, och hela tiden upstår problem med att se om det är dubbelöversatt eller om det är felöversatt. Och vad jag upptäckt blir det inte lättare av att t.ex. firefox gör fel när man kollar och ändrar för många gånger manuellt.
I det aktuella fallet så var det med email som skickades i base64 vilket då dessutom var ytterligare encodat.
Detta föranledde mig att göra en liten applikation som kan decoda base64 till UTF-8 samt ISO-8859-1.
http://www.cefit.se/decoder/default.aspx
Detta är en enkel dotnet applikatio där jag använder C#.
Jag pastar hela kodebehind koden nedan ifall detär någon som har nytta av det.
1: public partial class _Default : System.Web.UI.Page
2: {
3: protected void Page_Load(object sender, EventArgs e)
4: {
5: Label1.Text = "Current page encoding is: " + Response.ContentEncoding.HeaderName;
6:
7: if (RadioButtonList1.SelectedIndex == -1)
8: {
9: switch (Response.ContentEncoding.HeaderName.ToUpper())
10: {
11: case "UTF-8":
12: RadioButtonList1.SelectedIndex = 0;
13: break;
14: case "ISO-8859-1":
15: RadioButtonList1.SelectedIndex = 1;
16: break;
17: case "Latin1":
18: RadioButtonList1.SelectedIndex = 2;
19: break;
20: default:
21: RadioButtonList1.SelectedIndex = -1;
22: break;
23: }
24: }
25: }
26:
27: protected void UTF8_Click(object sender, EventArgs e)
28: {
29: byte[] tmpbytes = Convert.FromBase64String(TextBox1.Text);
30: char[] tmpchar = System.Text.Encoding.UTF8.GetChars(tmpbytes);
31: TextBox2.Text = new string(tmpchar);
32: }
33:
34: protected void ISO_Click(object sender, EventArgs e)
35: {
36: byte[] tmpbytes = Convert.FromBase64String(TextBox1.Text);
37: char[] tmpchar = System.Text.Encoding.GetEncoding("iso-8859-1").GetChars(tmpbytes);
38: TextBox2.Text = new string(tmpchar);
39: }
40:
41: protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
42: {
43: Response.ContentEncoding = System.Text.Encoding.GetEncoding(RadioButtonList1.SelectedValue);
44: Label1.Text = "Current encoding is: " + Response.ContentEncoding.HeaderName;
45:
46: }
47: }
0be3086b-7b47-4e91-8ca1-e4eb662f4b9d|0|.0
Tags: