diff -uNr /usr/local/nagios/lib.bak/Opsview/Keyword.pm /usr/local/nagios/lib/Opsview/Keyword.pm
--- /usr/local/nagios/lib.bak/Opsview/Keyword.pm        2011-07-27 18:53:59.000000000 +0900
+++ /usr/local/nagios/lib/Opsview/Keyword.pm    2011-08-02 14:17:30.000000000 +0900
@@ -26,6 +26,8 @@

 __PACKAGE__->table("keywords");

+__PACKAGE__->utf8_columns( qw/description/ );
+
 __PACKAGE__->columns( Primary   => qw/id/ );
 __PACKAGE__->columns( Essential => qw/name description enabled style/ );

diff -uNr /usr/local/nagios/lib.bak/Opsview/Schema/Contacts.pm /usr/local/nagios/lib/Opsview/Schema/Contacts.pm
--- /usr/local/nagios/lib.bak/Opsview/Schema/Contacts.pm        2011-07-27 18:54:00.000000000 +0900
+++ /usr/local/nagios/lib/Opsview/Schema/Contacts.pm    2011-08-02 14:18:13.000000000 +0900
@@ -47,6 +47,7 @@
     "uncommitted",
     { data_type => "INT", default_value => 0, is_nullable => 0, size => 11 },
 );
+__PACKAGE__->utf8_columns(qw/description/);
 __PACKAGE__->set_primary_key("id");
 __PACKAGE__->add_unique_constraint( "name", ["name"] );
 __PACKAGE__->belongs_to( "role", "Opsview::Schema::Roles", { id => "role" } );
diff -uNr /usr/local/nagios/lib.bak/Opsview/Schema/Keywords.pm /usr/local/nagios/lib/Opsview/Schema/Keywords.pm
--- /usr/local/nagios/lib.bak/Opsview/Schema/Keywords.pm        2011-07-27 18:54:00.000000000 +0900
+++ /usr/local/nagios/lib/Opsview/Schema/Keywords.pm    2011-08-02 14:18:38.000000000 +0900
@@ -35,6 +35,7 @@
     "uncommitted",
     { data_type => "TINYINT", default_value => 0, is_nullable => 0, size => 1 },
 );
+__PACKAGE__->utf8_columns( qw/description/ );
 __PACKAGE__->set_primary_key("id");
 __PACKAGE__->add_unique_constraint( "name", ["name"] );
 __PACKAGE__->has_many( "keywordhostgroups",    "Opsview::Schema::Keywordhostgroups",           { "foreign.keywordid" => "self.id" }, );
diff -uNr /usr/local/nagios/lib.bak/Opsview/Schema/Servicechecks.pm /usr/local/nagios/lib/Opsview/Schema/Servicechecks.pm
--- /usr/local/nagios/lib.bak/Opsview/Schema/Servicechecks.pm   2011-07-27 18:54:00.000000000 +0900
+++ /usr/local/nagios/lib/Opsview/Schema/Servicechecks.pm       2011-08-02 14:19:31.000000000 +0900
@@ -5,7 +5,7 @@

 use base qw/Opsview::DBIx::Class Opsview::ServiceBase/;

-__PACKAGE__->load_components(qw/+Opsview::DBIx::Class::Common Validation Core/);
+__PACKAGE__->load_components(qw/+Opsview::DBIx::Class::Common Validation UTF8Columns Core/);
 __PACKAGE__->table("opsview.servicechecks");
 __PACKAGE__->add_columns(
     "id",
@@ -107,6 +107,7 @@
     "dependency_level",
     { data_type => "TINYINT", default_value => 0, is_nullable => 0, size => 4 },
 );
+__PACKAGE__->utf8_columns(qw/description/);
 __PACKAGE__->set_primary_key("id");
 __PACKAGE__->add_unique_constraint( "name", ["name"] );
 __PACKAGE__->has_many( "hostservicechecks",         "Opsview::Schema::Hostservicechecks",         { "foreign.servicecheckid" => "self.id" }, { "join_type" => "inner" } );
diff -uNr /usr/local/nagios/lib.bak/Opsview/Servicecheck.pm /usr/local/nagios/lib/Opsview/Servicecheck.pm
--- /usr/local/nagios/lib.bak/Opsview/Servicecheck.pm   2011-07-27 18:54:01.000000000 +0900
+++ /usr/local/nagios/lib/Opsview/Servicecheck.pm       2011-08-02 14:20:04.000000000 +0900
@@ -29,6 +29,7 @@

 __PACKAGE__->table("servicechecks");

+__PACKAGE__->utf8_columns(qw/description/);
 __PACKAGE__->columns( Primary => qw/id/, );

 # See Host.pm re: number of columns in Essential
diff -uNr /usr/local/nagios/lib.bak/Runtime/Downtime.pm /usr/local/nagios/lib/Runtime/Downtime.pm
--- /usr/local/nagios/lib.bak/Runtime/Downtime.pm       2011-07-27 18:53:58.000000000 +0900
+++ /usr/local/nagios/lib/Runtime/Downtime.pm   2011-08-02 14:20:26.000000000 +0900
@@ -28,6 +28,7 @@

 __PACKAGE__->table("nagios_scheduleddowntime");

+__PACKAGE__->utf8_columns(qw/comment_data/);
 __PACKAGE__->columns( Primary => qw/scheduleddowntime_id/ );
 __PACKAGE__->columns(
     Essential => qw/
diff -uNr /usr/local/nagios/lib.bak/Runtime/Hostdowntime.pm /usr/local/nagios/lib/Runtime/Hostdowntime.pm
--- /usr/local/nagios/lib.bak/Runtime/Hostdowntime.pm   2011-07-27 18:53:58.000000000 +0900
+++ /usr/local/nagios/lib/Runtime/Hostdowntime.pm       2011-08-02 14:20:58.000000000 +0900
@@ -28,6 +28,7 @@

 __PACKAGE__->table("nagios_scheduleddowntime");

+__PACKAGE__->utf8_columns(qw/comment_data/);
 __PACKAGE__->columns( Primary => qw/scheduleddowntime_id/ );
 __PACKAGE__->columns(
     Essential => qw/
diff -uNr /usr/local/nagios/lib.bak/Runtime/ResultSet/OpsviewHostObjects.pm /usr/local/nagios/lib/Runtime/ResultSet/OpsviewHostObjects.pm
--- /usr/local/nagios/lib.bak/Runtime/ResultSet/OpsviewHostObjects.pm   2011-07-27 18:53:58.000000000 +0900
+++ /usr/local/nagios/lib/Runtime/ResultSet/OpsviewHostObjects.pm       2011-08-02 15:46:19.000000000 +0900
@@ -388,11 +388,12 @@
             }
         }

+        use Encode qw/decode/;
         $this_service = {
             name                  => $hash->{service},
             service_object_id     => $hash->{service_object_id},
             state                 => convert_state_to_text( $hash->{service_state} ),
-            output                => $hash->{service_output},
+            output                => decode('utf8', $hash->{service_output}),
             unhandled             => $hash->{service_unhandled},
             perfdata_available    => $hash->{perfdata_available},
             markdown              => $hash->{markdown_filter},
diff -uNr /usr/local/nagios/lib.bak/Runtime/Schema/NagiosScheduleddowntimes.pm /usr/local/nagios/lib/Runtime/Schema/NagiosScheduleddowntimes.pm
--- /usr/local/nagios/lib.bak/Runtime/Schema/NagiosScheduleddowntimes.pm        2011-07-27 18:53:58.000000000 +0900
+++ /usr/local/nagios/lib/Runtime/Schema/NagiosScheduleddowntimes.pm    2011-08-02 14:22:06.000000000 +0900
@@ -8,7 +8,7 @@

 use base 'DBIx::Class::Core';

-__PACKAGE__->load_components("InflateColumn::DateTime");
+__PACKAGE__->load_components("InflateColumn::DateTime", "UTF8Columns");

 =head1 NAME

@@ -172,6 +172,7 @@
     "actual_start_time_usec",
     { data_type => "integer", default_value => 0, is_nullable => 0 },
 );
+__PACKAGE__->utf8_columns(qw/comment_data/);
 __PACKAGE__->set_primary_key("scheduleddowntime_id");
 __PACKAGE__->add_unique_constraint( "instance_id", [ "object_id", "instance_id", "entry_time", "internal_downtime_id", ], );

diff -uNr /usr/local/nagios/lib.bak/Runtime/Schema/NagiosStatehistory.pm /usr/local/nagios/lib/Runtime/Schema/NagiosStatehistory.pm
--- /usr/local/nagios/lib.bak/Runtime/Schema/NagiosStatehistory.pm      2011-07-27 18:53:58.000000000 +0900
+++ /usr/local/nagios/lib/Runtime/Schema/NagiosStatehistory.pm  2011-08-02 14:22:55.000000000 +0900
@@ -25,7 +25,7 @@

 use base 'DBIx::Class';

-__PACKAGE__->load_components(qw/InflateColumn::DateTime Core/);
+__PACKAGE__->load_components(qw/UTF8Columns InflateColumn::DateTime Core/);
 __PACKAGE__->table("nagios_statehistory");
 __PACKAGE__->add_columns(
     "statehistory_id",
@@ -60,6 +60,7 @@
     "output",
     { data_type => "TEXT", default_value => "", is_nullable => 0, size => 65535 },
 );
+__PACKAGE__->utf8_columns(qw/output/);
 __PACKAGE__->set_primary_key("statehistory_id");

 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-07-16 21:25:16
diff -uNr /usr/local/nagios/lib.bak/Runtime/Searches.pm /usr/local/nagios/lib/Runtime/Searches.pm
--- /usr/local/nagios/lib.bak/Runtime/Searches.pm       2011-07-27 18:53:58.000000000 +0900
+++ /usr/local/nagios/lib/Runtime/Searches.pm   2011-08-02 14:23:49.000000000 +0900
@@ -737,7 +737,9 @@
                 }
             }
             $this_service->{comments}              = $comments->{ $hash->{service_object_id} } if ( defined $comments->{ $hash->{service_object_id} } );
-            $this_service->{output}                = $hash->{service_output};
+            $this_service->{perfdata}              = $hash->{service_perfdata};  # We need perfdata
+            use Encode qw/decode encode/;
+            $this_service->{output} = decode('utf8',$hash->{service_output});
             $this_service->{unhandled}             = $hash->{service_unhandled};
             $this_service->{perfdata_available}    = $hash->{perfdata_available};
             $this_service->{markdown}              = $hash->{markdown_filter};
diff -uNr /usr/local/nagios/lib.bak/Runtime/Servicedowntime.pm /usr/local/nagios/lib/Runtime/Servicedowntime.pm
--- /usr/local/nagios/lib.bak/Runtime/Servicedowntime.pm        2011-07-27 18:53:58.000000000 +0900
+++ /usr/local/nagios/lib/Runtime/Servicedowntime.pm    2011-08-02 14:24:33.000000000 +0900
@@ -28,6 +28,7 @@

 __PACKAGE__->table("nagios_scheduleddowntime");

+__PACKAGE__->utf8_columns(qw/comment_data/);
 __PACKAGE__->columns( Primary => qw/scheduleddowntime_id/ );
 __PACKAGE__->columns(
     Essential => qw/
diff -uNr /usr/local/nagios/lib.bak/Runtime/Servicestatus.pm /usr/local/nagios/lib/Runtime/Servicestatus.pm
--- /usr/local/nagios/lib.bak/Runtime/Servicestatus.pm  2011-07-27 18:53:58.000000000 +0900
+++ /usr/local/nagios/lib/Runtime/Servicestatus.pm      2011-08-02 15:10:13.000000000 +0900
@@ -27,6 +27,7 @@

 __PACKAGE__->table("nagios_servicestatus");

+__PACKAGE__->utf8_columns( qw/output/ );
 __PACKAGE__->columns( Primary   => qw/service_object_id/ );
 __PACKAGE__->columns( Essential => qw/output last_check next_check current_state problem_has_been_acknowledged/ );

diff -uNr /usr/local/nagios/lib.bak/Runtime.pm /usr/local/nagios/lib/Runtime.pm
--- /usr/local/nagios/lib.bak/Runtime.pm        2011-07-27 18:53:57.000000000 +0900
+++ /usr/local/nagios/lib/Runtime.pm    2011-08-02 14:25:20.000000000 +0900
@@ -26,6 +26,7 @@
 use Class::DBI::Sweet;
 use base "Exporter", 'Class::DBI::Sweet', "Opsview::Base", "ClassDBIExtras";
 use Opsview::Config;
+use Class::DBI::utf8 qw(-nosearch);

 use Carp;
 use Exporter;