| Encode-Korean documentation | Contained in the Encode-Korean distribution. |
Encode::Korean::SKATS - Perl extension for Encoding of Korean: SKATS
use Encode::Korean::SKATS;
$string = decode 'skats', $octets;
$octets = encode 'skats', $string;
while($line = <>) {
print encode 'utf8', decode 'skats', $line;
}
Encode::Korean::SKATS implements an encoding system of Korean based on SKATS (Standar Korean Alphabet Transliteration System).
This module use Encode implementation base class Encode::Encoding. The conversion is carried by a transliterator object of Encode::Korean::TransliteratorGenerator (Encode::Korean::TransliteratorGenerator).
Unicode name Transliteration kiyeok L ssangkieok LL nieun F tikeut B ssangtikeut BB rieul V mieum M pieup W ssangpieup WW sios G ssangsios GG ieung K cieuc P ssangcieuc PP chieuch C khieukh X thieuth Z phieuph O hieuh J a E ae EU ya I yae US eo T e TU yeo S ye SU o A wa AE wae AEU oe AU yo N u H weo HT we HTU wi HU yu R eu D yi DU i D
* Put one space between syllables and two spaces between words.
SKATS = "PU LH VDV PU XS VE!"
Visit http://en.wikipedia.org/wiki/SKATS, for more information about SKATS.
Visit http://www.alanwood.net/unicode/hangul_jamo.html, if you want a list of Hangul Jamo in Unicode.
See Encode, Encode::Encoding, Encode::Korean, Encode::Korean::TransliteratorGenerator (Encode::Korean::TransliteratorGenerator), if you want to know more about relevant modules.
See Encode::KR, Lingua::KO::MacKorean, if you need common encodings.
See Lingua::KO::Romanize::Hangul, if you need a common romanization (transcription method used in public).
You Hyun Jo, <you at cpan dot org>
Copyright (C) 2007 by You Hyun Jo
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
| Encode-Korean documentation | Contained in the Encode-Korean distribution. |
# Encoding of Korean: SKATS (Standard Korean Alphabet Transliteration System) # $Id: SKATS.pm,v 1.7 2007/11/29 14:25:31 you Exp $ package Encode::Korean::SKATS; our $VERSION = do { q$Revision: 1.7 $ =~ /\d+\.(\d+)/; sprintf "%.2f", $1 / 100 }; use 5.008008; use strict; use warnings; use Encode::Encoding; use base qw(Encode::Encoding); __PACKAGE__->Define(qw/skats/); sub import { require Encode; Encode->export_to_level(1,@_); } # == RULES == use Encode::Korean::TransliteratorGenerator; my $skats = Encode::Korean::TransliteratorGenerator->new(); $skats->consonants(qw(L LL F B BB V M W WW G GG K P PP C X Z O J)); $skats->vowels(qw(E EU I US T TU S SU A AE AEU AU N H HT HTU HU R D DU U)); #$skats->el('l'); #$skats->ell('ll'); $skats->naught(''); $skats->sep(' '); $skats->make(); $skats->enmode('greedy'); $skats->demode('greedy'); # == MODES == sub enmode { my $class = shift; my($mode) = @_; $skats->enmode($mode); } sub demode { my $class = shift; my($mode) = @_; $skats->demode($mode); } # == METHODS == # === encode === # * encode($string [,$check]) # * Encodes unicode hangul syllables (Perl internal string) # into transliterated (romanized) string sub encode ($$;$) { my ($obj, $str, $chk) = @_; my $tr; my @word = split(/([ ]+)/, $str); foreach (@word) { if ($_ =~ m/([ ]+)/) { $tr = $tr . $1 . ' '; } else { $tr = $tr . $skats->encode($_, $chk); } } $_[1] = '' if $chk; return $tr; } # # === decode === # * decode($octets [,$check]) # * Decodes transliteration into unicode hangul syllables (Perl internal string) sub decode ($$;$) { my ($obj, $str, $chk) = @_; my $han; my @word = split(/([ ][ ]+)/, $str); foreach (@word) { if ($_ =~ m/[ ]([ ]+)/) { $han = $han . $1; } else { $han = $han . $skats->decode($_, $chk); } } $_[1] = '' if $chk; return $han; } # === cat_decode === # * Needs to work with encoding pragma # * cat_decode($destination, $octets, $offset, $terminator [,$check]) 1; __END__