4 Website: http://www.vultaire.net/software/jben/
5 License: GNU General Public License (GPL) version 2
6 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>
26 wxCSConv
transcoder(_T("utf8"));
28 bool IsFurigana(wxChar c
) {
29 if(IsHiragana(c
) || IsKatakana(c
)) return true;
33 bool IsHiragana(wxChar c
) {
35 if(i
>= 0x3041 && i
<= 0x3096) return true;
39 bool IsKatakana(wxChar c
) {
41 if(i
>= 0x30A1 && i
<= 0x30FA) return true;
45 bool UTF8ToWx(const string
& utfStr
, wxString
& wxStr
) {
46 int srcLength
= utfStr
.length();
47 int destLength
= (srcLength
+1) * sizeof(wxChar
);
50 wxStr
.GetWriteBuf(destLength
),
51 utfStr
.c_str(), destLength
);
52 wxStr
.UngetWriteBuf();
54 /* This will be a performance hit if used, I think. But I'll leave it
55 in as a comment for possible future memory savings. */
60 bool WxToUTF8(const wxString
& wxStr
, string
& utfStr
) {
61 /* UTF8 can take up to 4 bytes for each single UNICODE character.
62 So, instead of sizeof(wxChar) or similar, we just use a hard-coded
64 int srcLength
= wxStr
.length();
65 int destLength
= (srcLength
+1) * 4;
66 char *temp
= new char[destLength
];
68 transcoder
.WC2MB(temp
, wxStr
.c_str(), destLength
);