#!/usr/bin/perl
use strict;
BEGIN {
print "content-type: text/html; charset=UTF-8\n\n";
use FindBin qw ($RealBin $RealScript);
use lib $FindBin::RealBin;
chdir $RealBin;
}#BEGIN
use CGI;
my $cgi = new CGI;
print qq~
~;
if ( $cgi->param('string') ) {
use Encode qw( is_utf8 encode decode );
print "Input: ${ \$cgi->param('string') } (IS UTF8? ";
if ( is_utf8($cgi->param('string')) ) { print "Yes)
\n"; }
else { print "No)
\n"; }
my $string = decode("utf8", $cgi->param('string'));
print "Decoded: $string (IS UTF8? ";
if ( is_utf8($string) ) { print "Yes)
\n"; }
else { print "No)
\n"; }
my $octets = encode("utf8", $cgi->param('string'));
print "Encoded: $octets (IS UTF8? ";
if ( is_utf8($octets) ) { print "Yes)
\n"; }
else { print "No)
\n"; }
open( OUTF, '>utf8.txt' ) || print("Error writing file");
print OUTF "Input: ${ \$cgi->param('string') }\n";
print OUTF "Decoded: $string\n";
print OUTF "Encoded: $octets\n";
close( OUTF );
use HTML::Entities;
my $ent_input = encode_entities($cgi->param('string'));
print "Entities input: $ent_input
\n";
my $ent_decode = encode_entities($string);
print "Entities decoded: $ent_decode
\n";
my $ent_encode = encode_entities($octets);
print "Entities encoded: $ent_encode
\n";
}#if