Prechádzať zdrojové kódy

Catch utf8 encode/decode exceptions

Pascal Peridont 17 rokov pred
rodič
commit
e84dade82c
2 zmenil súbory, kde vykonal 6 pridanie a 6 odobranie
  1. 4 4
      std/mtwin/mail/Browser.hx
  2. 2 2
      std/mtwin/mail/Tools.hx

+ 4 - 4
std/mtwin/mail/Browser.hx

@@ -64,9 +64,9 @@ class Browser extends MetaPart<Browser> {
 			var charsetlc = r.charset.toLowerCase();
 
 			if( cslc != "utf-8" && charsetlc == "utf-8" ){
-				r.content =  Utf8.decode( r.content );
+				r.content =  try Utf8.decode( r.content ) catch( e : Dynamic ) r.content;
 			}else if( charsetlc != "utf-8" && cslc == "utf-8" ){
-				r.content =  Utf8.encode( r.content );
+				r.content =  try Utf8.encode( r.content ) catch( e : Dynamic ) r.content;
 			}
 			r.charset = cs;
 		}
@@ -132,9 +132,9 @@ class Browser extends MetaPart<Browser> {
 		for( v in l ){
 			var name = v.name;
 			if( cs != "utf-8" && v.charset.toLowerCase() == "utf-8" ){
-				name =  Utf8.decode( name );
+				name =  try Utf8.decode( name ) catch( e : Dynamic ) name;
 			}else if( v.charset.toLowerCase() != "utf-8" && cs == "utf-8" ){
-				name =  Utf8.encode( name );
+				name =  try Utf8.encode( name ) catch( e : Dynamic ) name;
 			}
 			r.add({
 				name: name, 

+ 2 - 2
std/mtwin/mail/Tools.hx

@@ -273,9 +273,9 @@ class Tools {
 
 			charsetOut = charsetOut.toLowerCase();
 			if( charsetOut != "utf-8" && charset == "utf-8" ){
-				encoded =  neko.Utf8.decode( encoded );
+				encoded =  try neko.Utf8.decode( encoded ) catch( e : Dynamic ) encoded;
 			}else if( charset != "utf-8" && charsetOut == "utf-8" ){
-				encoded =  neko.Utf8.encode( encoded );
+				encoded =  try neko.Utf8.encode( encoded ) catch( e : Dynamic ) encoded;
 			}
 
 			str = start + encoded + end;