Index: wp-includes/taxonomy.php
===================================================================
--- wp-includes/taxonomy.php	(revision 12207)
+++ wp-includes/taxonomy.php	(working copy)
@@ -1001,6 +1001,7 @@
 		else
 			$value = esc_attr($value);
 	} else if ( 'db' == $context ) {
+		$value = wp_check_invalid_utf8($value, TRUE);
 		$value = apply_filters("pre_term_$field", $value, $taxonomy);
 		$value = apply_filters("pre_${taxonomy}_$field", $value);
 		// Back compat filters
@@ -1361,9 +1362,6 @@
 	if ( is_int($term) && 0 == $term )
 		return new WP_Error('invalid_term_id', __('Invalid term ID'));
 
-	if ( '' == trim($term) )
-		return new WP_Error('empty_term_name', __('A name is required for this term'));
-
 	$defaults = array( 'alias_of' => '', 'description' => '', 'parent' => 0, 'slug' => '');
 	$args = wp_parse_args($args, $defaults);
 	$args['name'] = $term;
@@ -1375,6 +1373,9 @@
 	$name = stripslashes($name);
 	$description = stripslashes($description);
 
+	if ( '' == trim($name) )
+		return new WP_Error('empty_term_name', __('A name is required for this term'));
+
 	if ( empty($slug) )
 		$slug = sanitize_title($name);
 
