Hi,
I have a text field defined as:
$self->{defs} = Wx::TextCtrl->new(
$self->{panel},
-1,
"",
wxDefaultPosition,
[ 500, 400 ],
wxTE_MULTILINE | wxTE_READONLY | wxVSCROLL | wxTE_PROCESS_ENTER |
wxTE_RICH2
);
And I am trying to set a font for it using:
my $font = Wx::Font->new( $FontSize}, wxFONTFAMILY_SWISS,
wxFONTSTYLE_NORMAL,
wxFONTWEIGHT_NORMAL, 0, "Arial Unicode MS", wxFONTENCODING_SYSTEM );
my $style = Wx::TextAttr->new;
$style->Wx::TextAttr::SetFont($font);
$self->{defs}->SetDefaultStyle($style);
But if I print UTF-8 chars in this field, it prints squares instead of
special UTF-8 chars (non ASCII).
Should it work this way and the text might be wrong UTF-8 encoded?
I also read in the WxPerl documentation:
""
The known font encodings are:
...
wxFONTENCODING_UTF8, // UTF-8 Unicode encoding
""
So I tried to change wxFONTENCODING_SYSTEM with wxFONTENCODING_UTF8 in the
code above.
But this just makes WxPerl to pop up a window that tells:
""
Wx::SimpleApp: unknown encoding
No font for displaying text in encoding 'Unicode 8 bit (UTF-8)' found.Would
you like to select a font to be used for this encoding
(otherwise the text in this encoding will not be shown correctly)?
Yes No
""
So I created another small program to find which are the available
encodings:
use Wx ':everything';
use Data::Dump 'pp';
my $enum = Wx::FontEnumerator->new;
my @encodings = $enum->GetEncodings;
print pp \@encodings;
And the result was:
[
"WINDOWS-1250",
"WINDOWS-437",
"unknown-87",
"WINDOWS-1252",
"WINDOWS-1255",
"WINDOWS-1256",
"WINDOWS-1253",
"WINDOWS-1254",
"WINDOWS-1257",
"WINDOWS-1251",
"unknown--1",
"WINDOWS-874",
"unknown--1",
"WINDOWS-932",
"WINDOWS-949",
"unknown--1",
"WINDOWS-936",
"WINDOWS-950",
]
So there is no encoding that contains "UTF-8" in its name.
Does this mean that WxPerl can't print UTF-8 texts?
Or there is something else I need to do?
In the same documentation page, when describing the constructor of the
Wx::Font object, it describes the "encoding" parameter as:
""
encoding
An encoding which may be one of
wxFONTENCODING_SYSTEM
wxFONTENCODING_DEFAULT
wxFONTENCODING_ISO8859_1...15
wxFONTENCODING_KOI8
wxFONTENCODING_CP1250...1252
""
In this list of possible encodings appear only these items, and no one that
includes "UTF8".
Eventually, is there an example of writing text with a certain font that
supports UTF-8?
Thanks.
--Octavian