--- wp-admin/includes/image_bak.php	2012-09-16 16:36:17.784856920 -0700
+++ wp-admin/includes/image.php	2012-09-16 17:20:55.991346839 -0700
@@ -253,13 +253,13 @@
 
 			// headline, "A brief synopsis of the caption."
 			if ( ! empty( $iptc['2#105'][0] ) )
-				$meta['title'] = utf8_encode( trim( $iptc['2#105'][0] ) );
+				$meta['title'] = trim( $iptc['2#105'][0] );
 			// title, "Many use the Title field to store the filename of the image, though the field may be used in many ways."
 			elseif ( ! empty( $iptc['2#005'][0] ) )
-				$meta['title'] = utf8_encode( trim( $iptc['2#005'][0] ) );
+				$meta['title'] = trim( $iptc['2#005'][0] );
 
 			if ( ! empty( $iptc['2#120'][0] ) ) { // description / legacy caption
-				$caption = utf8_encode( trim( $iptc['2#120'][0] ) );
+				$caption = trim( $iptc['2#120'][0] );
 				if ( empty( $meta['title'] ) ) {
 					// Assume the title is stored in 2:120 if it's short.
 					if ( strlen( $caption ) < 80 )
@@ -272,15 +272,23 @@
 			}
 
 			if ( ! empty( $iptc['2#110'][0] ) ) // credit
-				$meta['credit'] = utf8_encode(trim($iptc['2#110'][0]));
+				$meta['credit'] = trim($iptc['2#110'][0]);
 			elseif ( ! empty( $iptc['2#080'][0] ) ) // creator / legacy byline
-				$meta['credit'] = utf8_encode(trim($iptc['2#080'][0]));
+				$meta['credit'] = trim($iptc['2#080'][0]);
 
 			if ( ! empty( $iptc['2#055'][0] ) and ! empty( $iptc['2#060'][0] ) ) // created date and time
 				$meta['created_timestamp'] = strtotime( $iptc['2#055'][0] . ' ' . $iptc['2#060'][0] );
 
 			if ( ! empty( $iptc['2#116'][0] ) ) // copyright
-				$meta['copyright'] = utf8_encode( trim( $iptc['2#116'][0] ) );
+				$meta['copyright'] = trim( $iptc['2#116'][0] );
+
+			// If the encoding is not UTF-8, try to encode it!
+			if ( ! isset( $iptc["1#090"] ) || $iptc["1#090"][0] != "\x1B%G" ) {
+				$encode_list = array('title', 'caption', 'credit', 'copyright');
+				foreach ( $encode_list as $kname )
+					if ( isset( $meta[$kname] ) )
+						$meta[$kname] = utf8_encode($meta[$kname]);
+			}
 		 }
 	}
 
