--- wordpress.orig/wp-trackback.php	Tue Sep  5 22:00:19 2006
+++ wordpress/wp-trackback.php	Tue Sep  5 22:03:51 2006
@@ -6,7 +6,7 @@
 }
 
 function trackback_response($error = 0, $error_message = '') {
-	header('Content-Type: text/xml; charset=' . get_option('blog_charset') );
+	header('Content-Type: text/xml; charset=utf-8' );
 	if ($error) {
 		echo '<?xml version="1.0" encoding="utf-8"?'.">\n";
 		echo "<response>\n";
@@ -34,17 +34,22 @@
 $title     = $_POST['title'];
 $excerpt   = $_POST['excerpt'];
 $blog_name = $_POST['blog_name'];
-$charset   = $_POST['charset'];
+$headers = apache_request_headers();
+$charset = substr (stristr ($headers['Content-Type'], 'charset='), 8);
 
-if ($charset)
+if ($charset) {
 	$charset = strtoupper( trim($charset) );
-else
+} else
 	$charset = 'ASCII, UTF-8, ISO-8859-1, JIS, EUC-JP, SJIS';
 
 if ( function_exists('mb_convert_encoding') ) { // For international trackbacks
 	$title     = mb_convert_encoding($title, get_settings('blog_charset'), $charset);
 	$excerpt   = mb_convert_encoding($excerpt, get_settings('blog_charset'), $charset);
 	$blog_name = mb_convert_encoding($blog_name, get_settings('blog_charset'), $charset);
+} else if ( function_exists('iconv') ) {
+	$title = iconv($charset, get_settings('blog_charset'), $title);
+	$excerpt = iconv($charset, get_settings('blog_charset'), $excerpt);
+	$blog_name = iconv($charset, get_settings('blog_charset'), $blog_name);
 }
 
 if ( is_single() || is_page() ) 

