Encodings and Languages are relatively independent. If you have an "universal" encoding like UTF-8, it can encode characters from all languages (provided they are in the Unicode character repertoire, which is the case for basically all living and many dead languages). And you don't have to special-case any language.
I don't know exactly what characters are in gb2312, but if you want to use some characters that are not in it, you have to use a different encoding.
If you use UTF-8 for English and German, you should be fine (but your program has to know this, of course).
Perl 6 - links to (nearly) everything that is Perl 6.
| [reply] |
| [reply] |
Hi,
Here are my codes
############################
use Encode;
$text = @ARGV[0];
#here i read a string from command line
$string = decode("gb2312",$text);
#decode the input with gb2312, which is decided by my local setting
@chars = split //,$string;
open(OUTPUT,">>anUTF8File.txt");
foreach $char (@chars)
{
print OUTPUT encode("utf8",$char);
#i encode it into utf8 here
#and write it to the utf8 formatted file
}
close(OUTPUT);
############################
when I input english string in the command, this works fine.
then i changed my keyboard to German type and type some German characters for the ARGV[0], then what was written to the file were some strange characters like "?" or others.
| [reply] |
The problem is with the program that launches perl (and populates @ARGV) and displays the output (?????). On win32 this is usually cmd.exe, and you have to configure cmd.exe separately to accept German type input ( chcp ) and separately to display German properly (font settings).
| [reply] |