From: <kro...@us...> - 2010-12-21 13:27:00
|
Revision: 4051 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=4051&view=rev Author: kroko_koenig Date: 2010-12-21 13:26:53 +0000 (Tue, 21 Dec 2010) Log Message: ----------- UTF8 encoding on the server Modified Paths: -------------- trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs trunk/plugins/AndroidRemote/Server/AndroidRemote.suo Modified: trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs =================================================================== --- trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs 2010-12-21 11:02:44 UTC (rev 4050) +++ trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs 2010-12-21 13:26:53 UTC (rev 4051) @@ -730,9 +730,6 @@ } } - - - } #endregion @@ -802,7 +799,7 @@ // folder foreach (string key in directoryList.Keys) { - msg += "<Folder>" + HttpUtility.HtmlEncode(key) + "</Folder>\r\n"; + msg += "<Folder>" + EncodeString(key) + "</Folder>\r\n"; } msg += "</Directory>\r\n"; @@ -832,7 +829,7 @@ string[] dirs = Directory.GetDirectories(dir, "*.*", SearchOption.TopDirectoryOnly); foreach (string f in dirs) { - msg += "<Folder>" + HttpUtility.HtmlEncode(Path.GetFileName(f)) + "</Folder>\r\n"; + msg += "<Folder>" + EncodeString(Path.GetFileName(f)) + "</Folder>\r\n"; } //files @@ -841,7 +838,7 @@ { string fName = Path.GetFileName(f); if ((fName.ToLower() != "folder.jpg") && (fName.ToLower() != "folder.png")) - msg += "<File>" + HttpUtility.HtmlEncode(fName) + "</File>\r\n"; + msg += "<File>" + EncodeString(fName) + "</File>\r\n"; } msg += "</Directory>\r\n"; // send @@ -1204,7 +1201,7 @@ // folder foreach (string key in directoryList.Keys) { - msg += "<Folder>" + HttpUtility.HtmlEncode(key) + "</Folder>\r\n"; + msg += "<Folder>" + EncodeString(key) + "</Folder>\r\n"; } msg += "</Directory>\r\n"; @@ -1234,7 +1231,7 @@ string[] dirs = Directory.GetDirectories(dir, "*.*", SearchOption.TopDirectoryOnly); foreach (string f in dirs) { - msg += "<Folder>" + HttpUtility.HtmlEncode(Path.GetFileName(f)) + "</Folder>\r\n"; + msg += "<Folder>" + EncodeString(Path.GetFileName(f)) + "</Folder>\r\n"; } //files @@ -1242,7 +1239,7 @@ foreach (string f in files) { string fName = Path.GetFileName(f); - msg += "<File>" + HttpUtility.HtmlEncode(fName) + "</File>\r\n"; + msg += "<File>" + EncodeString(fName) + "</File>\r\n"; } msg += "</Directory>\r\n"; // send @@ -1313,7 +1310,7 @@ msg += "Proxy-Connection: close" + "\r\n"; msg += "\r\n"; // content - msg += "<?xml version=\"1.0\"?>\r\n"; + msg += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"; msg += "<Database>\r\n"; MediaPortal.Music.Database.MusicDatabase db = MediaPortal.Music.Database.MusicDatabase.Instance; @@ -1326,7 +1323,7 @@ if (artist != string.Empty) { msg += "<Item>\r\n"; - msg += "<Artist>" + HttpUtility.HtmlEncode(artist) + "</Artist>\r\n"; + msg += "<Artist>" + EncodeString(artist) + "</Artist>\r\n"; msg += "</Item>\r\n"; } } @@ -1361,11 +1358,11 @@ { msg += "<Item>\r\n"; - msg += "<Album>" + HttpUtility.HtmlEncode(album.Album.Replace("|", "").Trim()) + "</Album>\r\n"; - msg += "<AlbumArtist>" + HttpUtility.HtmlEncode(album.AlbumArtist.Replace("|", "").Trim()) + "</AlbumArtist>\r\n"; - msg += "<Artist>" + HttpUtility.HtmlEncode(album.Artist.Replace("|", "").Trim()) + "</Artist>\r\n"; - msg += "<Genre>" + HttpUtility.HtmlEncode(album.Genre.Replace("|", "").Trim()) + "</Genre>\r\n"; - msg += "<Rating>" + HttpUtility.HtmlEncode(album.Rating.ToString()) + "</Rating>\r\n"; + msg += "<Album>" + EncodeString(album.Album.Replace("|", "").Trim()) + "</Album>\r\n"; + msg += "<AlbumArtist>" + EncodeString(album.AlbumArtist.Replace("|", "").Trim()) + "</AlbumArtist>\r\n"; + msg += "<Artist>" + EncodeString(album.Artist.Replace("|", "").Trim()) + "</Artist>\r\n"; + msg += "<Genre>" + EncodeString(album.Genre.Replace("|", "").Trim()) + "</Genre>\r\n"; + msg += "<Rating>" + EncodeString(album.Rating.ToString()) + "</Rating>\r\n"; msg += "</Item>\r\n"; } @@ -1427,14 +1424,14 @@ msg += "<Item>\r\n"; msg += "<ID>" + HttpUtility.HtmlEncode(song.Id.ToString()) + "</ID>\r\n"; - msg += "<Title>" + HttpUtility.HtmlEncode(song.Title) + "</Title>\r\n"; - msg += "<Artist>" + HttpUtility.HtmlEncode(song.Artist) + "</Artist>\r\n"; - msg += "<Album>" + HttpUtility.HtmlEncode(song.Artist) + "</Album>\r\n"; + msg += "<Title>" + EncodeString(song.Title) + "</Title>\r\n"; + msg += "<Artist>" + EncodeString(song.Artist) + "</Artist>\r\n"; + msg += "<Album>" + EncodeString(song.Artist) + "</Album>\r\n"; msg += "<Genre>" + HttpUtility.HtmlEncode(song.Genre) + "</Genre>\r\n"; msg += "<Track>" + HttpUtility.HtmlEncode(song.Track.ToString()) + "</Track>\r\n"; msg += "<Duration>" + HttpUtility.HtmlEncode(song.Duration.ToString()) + "</Duration>\r\n"; msg += "<Rating>" + HttpUtility.HtmlEncode(song.Rating.ToString()) + "</Rating>\r\n"; - msg += "<Filename>" + HttpUtility.HtmlEncode(song.FileName) + "</Filename>\r\n"; + msg += "<Filename>" + EncodeString(song.FileName) + "</Filename>\r\n"; msg += "</Item>\r\n"; } @@ -1517,10 +1514,6 @@ total = string.Empty; } - artist = HttpUtility.HtmlEncode(artist); - album = HttpUtility.HtmlEncode(album); - title = HttpUtility.HtmlEncode(title); - string msg = string.Empty; // header msg += "HTTP/1.0 200 Ok\r\n"; @@ -1533,9 +1526,9 @@ msg += "<PlayerState>" + state + "</PlayerState>\r\n"; - msg += "<Title>" + title + "</Title>\r\n"; - msg += "<Artist>" + artist + "</Artist>\r\n"; - msg += "<Album>" + album + "</Album>\r\n"; + msg += "<Title>" + EncodeString(title) + "</Title>\r\n"; + msg += "<Artist>" + EncodeString(artist) + "</Artist>\r\n"; + msg += "<Album>" + EncodeString(album) + "</Album>\r\n"; msg += "<Track>" + track + "</Track>\r\n"; if (actualCover != null) msg += "<Cover>True</Cover>\r\n"; @@ -1578,7 +1571,7 @@ bool played = item.Played; string typ = item.Type.ToString(); - desc = HttpUtility.HtmlEncode(desc); + desc = EncodeString(desc); msg += "<Item>\r\n"; @@ -2052,5 +2045,15 @@ } return string.Empty; } + + private string EncodeString(string Data) + { + byte[] str = Encoding.UTF8.GetBytes(Data); + + System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); + string conv = enc.GetString(str); + + return HttpUtility.HtmlEncode(conv); + } } } Modified: trunk/plugins/AndroidRemote/Server/AndroidRemote.suo =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |