📄 qjpunicode.cpp
字号:
uint unicode = (h << 8) | l; if ((0xe3ac <= unicode) && (unicode <= 0xe757)) { // User Defined Char (mapped to Private Use Area) unicode -= 0xe3ac; return ((0x75 + unicode / 0x5e ) << 8) | (0x21 + unicode % 0x5e); } } uint jis = Unicode11ToJisx0212(h, l); if ((rule & JU_IBM_VDC) == 0){ if (((0x7373 <= jis) && (jis <= 0x737e)) || ((0x7421 <= jis) && (jis <= 0x747e))) { // IBM Vendor Defined Char return 0x0000; } } return jis;}/*! \internal */uint QJpUnicodeConv::SjisToUnicode(uint h, uint l) const{ if (h == 0) { return Jisx0201ToUnicode(h, l); } else if (IsSjisChar1(h) && IsSjisChar2(l)) { return Jisx0208ToUnicode(SjisToJisx0208(h, l)); } return 0x0000;}/*! \internal */uint QJpUnicodeConv::UnicodeToSjis(uint h, uint l) const{ uint jis; if ((jis = UnicodeToJisx0201(h, l)) != 0x0000) { return jis; } else if ((jis = UnicodeToJisx0208(h, l)) != 0x0000) { return Jisx0208ToSjis(jis); } else if ((jis = UnicodeToJisx0212(h, l)) != 0x0000) { return 0x0000; } return 0x0000;}/* * Unicode 1.1 with JISX0201 conversion. */class QJpUnicodeConv_Unicode_JISX0201 : public QJpUnicodeConv {public: QJpUnicodeConv_Unicode_JISX0201(int r) : QJpUnicodeConv(r) {}// uint AsciiToUnicode(uint h, uint l) const;// uint Jisx0201ToUnicode(uint h, uint l) const;// uint Jisx0201LatinToUnicode(uint h, uint l) const;// uint Jisx0201KanaToUnicode(uint h, uint l) const;// uint Jisx0208ToUnicode(uint h, uint l) const;// uint Jisx0212ToUnicode(uint h, uint l) const;// uint UnicodeToAscii(uint h, uint l) const;// uint UnicodeToJisx0201(uint h, uint l) const;// uint UnicodeToJisx0201Latin(uint h, uint l) const;// uint UnicodeToJisx0201Kana(uint h, uint l) const;// uint UnicodeToJisx0208(uint h, uint l) const;// uint UnicodeToJisx0212(uint h, uint l) const;};/* * Unicode 1.1 with ASCII conversion. */class QJpUnicodeConv_Unicode_ASCII : public QJpUnicodeConv {public: QJpUnicodeConv_Unicode_ASCII(int r) : QJpUnicodeConv(r) {}// uint AsciiToUnicode(uint h, uint l) const;// uint Jisx0201ToUnicode(uint h, uint l) const;// uint Jisx0201LatinToUnicode(uint h, uint l) const;// uint Jisx0201KanaToUnicode(uint h, uint l) const; uint Jisx0208ToUnicode(uint h, uint l) const; uint Jisx0212ToUnicode(uint h, uint l) const;// uint UnicodeToAscii(uint h, uint l) const;// uint UnicodeToJisx0201(uint h, uint l) const;// uint UnicodeToJisx0201Latin(uint h, uint l) const;// uint UnicodeToJisx0201Kana(uint h, uint l) const; uint UnicodeToJisx0208(uint h, uint l) const; uint UnicodeToJisx0212(uint h, uint l) const;};uint QJpUnicodeConv_Unicode_ASCII::Jisx0208ToUnicode(uint h, uint l) const{ if ((h == 0x21) && (l == 0x40)) { return 0xff3c; } return QJpUnicodeConv::Jisx0208ToUnicode(h, l);}uint QJpUnicodeConv_Unicode_ASCII::Jisx0212ToUnicode(uint h, uint l) const{ if ((h == 0x22) && (l == 0x37)) { return 0xff5e; } return QJpUnicodeConv::Jisx0212ToUnicode(h, l);}uint QJpUnicodeConv_Unicode_ASCII::UnicodeToJisx0208(uint h, uint l) const{ if ((h == 0x00) && (l == 0x5c)) { return 0x0000; } if ((h == 0xff) && (l == 0x3c)) { return 0x2140; } return QJpUnicodeConv::UnicodeToJisx0208(h, l);}/*! \internal */uint QJpUnicodeConv_Unicode_ASCII::UnicodeToJisx0212(uint h, uint l) const{ if ((h == 0x00) && (l == 0x7e)) { return 0x0000; } if ((h == 0xff) && (l == 0x5e)) { return 0x2237; } return QJpUnicodeConv::UnicodeToJisx0208(h, l);}/* * JISX0221 with JISX0201 conversion. */class QJpUnicodeConv_JISX0221_JISX0201 : public QJpUnicodeConv {public: QJpUnicodeConv_JISX0221_JISX0201(int r) : QJpUnicodeConv(r) {} uint AsciiToUnicode(uint h, uint l) const;// uint Jisx0201ToUnicode(uint h, uint l) const;// uint Jisx0201LatinToUnicode(uint h, uint l) const;// uint Jisx0201KanaToUnicode(uint h, uint l) const; uint Jisx0208ToUnicode(uint h, uint l) const;// uint Jisx0212ToUnicode(uint h, uint l) const; uint UnicodeToAscii(uint h, uint l) const;// uint UnicodeToJisx0201(uint h, uint l) const;// uint UnicodeToJisx0201Latin(uint h, uint l) const;// uint UnicodeToJisx0201Kana(uint h, uint l) const; uint UnicodeToJisx0208(uint h, uint l) const;// uint UnicodeToJisx0212(uint h, uint l) const;};uint QJpUnicodeConv_JISX0221_JISX0201::AsciiToUnicode(uint h, uint l) const{ return Jisx0201LatinToUnicode(h, l);}uint QJpUnicodeConv_JISX0221_JISX0201::Jisx0208ToUnicode(uint h, uint l) const{ if ((h == 0x21) && (l == 0x3d)) { return 0x2014; } return QJpUnicodeConv::Jisx0208ToUnicode(h, l);}uint QJpUnicodeConv_JISX0221_JISX0201::UnicodeToAscii(uint h, uint l) const{ return UnicodeToJisx0201Latin(h, l);}uint QJpUnicodeConv_JISX0221_JISX0201::UnicodeToJisx0208(uint h, uint l) const{#ifdef STRICT if ((h == 0x20) && (l == 0x15)) { return 0x0000; }#endif if ((h == 0x20) && (l == 0x14)) { return 0x213d; } return QJpUnicodeConv::UnicodeToJisx0208(h, l);}/* * JISX0221 with ASCII conversion. */class QJpUnicodeConv_JISX0221_ASCII : public QJpUnicodeConv {public: QJpUnicodeConv_JISX0221_ASCII(int r) : QJpUnicodeConv(r) {}// uint AsciiToUnicode(uint h, uint l) const;// uint Jisx0201ToUnicode(uint h, uint l) const; uint Jisx0201LatinToUnicode(uint h, uint l) const;// uint Jisx0201KanaToUnicode(uint h, uint l) const; uint Jisx0208ToUnicode(uint h, uint l) const; uint Jisx0212ToUnicode(uint h, uint l) const;// uint UnicodeToAscii(uint h, uint l) const;// uint UnicodeToJisx0201(uint h, uint l) const; uint UnicodeToJisx0201Latin(uint h, uint l) const;// uint UnicodeToJisx0201Kana(uint h, uint l) const; uint UnicodeToJisx0208(uint h, uint l) const; uint UnicodeToJisx0212(uint h, uint l) const;};uint QJpUnicodeConv_JISX0221_ASCII::Jisx0201LatinToUnicode(uint h, uint l) const{ return AsciiToUnicode(h, l);}uint QJpUnicodeConv_JISX0221_ASCII::Jisx0208ToUnicode(uint h, uint l) const{ if (h == 0x21) { if (l == 0x31) { return 0x203e; } else if (l == 0x3d) { return 0x02014; } else if (l == 0x40) { return 0xff3c; } else if (l == 0x6f) { return 0x00a5; } } return QJpUnicodeConv::Jisx0208ToUnicode(h, l);}uint QJpUnicodeConv_JISX0221_ASCII::Jisx0212ToUnicode(uint h, uint l) const{ if ((h == 0x22) && (l == 0x37)) { return 0xff5e; } return QJpUnicodeConv::Jisx0212ToUnicode(h, l);}uint QJpUnicodeConv_JISX0221_ASCII::UnicodeToJisx0201Latin(uint h, uint l) const{ return QJpUnicodeConv::UnicodeToAscii(h, l);}uint QJpUnicodeConv_JISX0221_ASCII::UnicodeToJisx0208(uint h, uint l) const{#ifdef STRICT if (((h == 0x00) && (l == 0x5c)) || ((h == 0x20) && (l == 0x15)) || ((h == 0xff) && ((l == 0xe3) || (l == 0xe5)))) { return 0x0000; }#else if ((h == 0x00) && (l == 0x5c)) { return 0x0000; }#endif if ((h == 0x00) && (l == 0xa5)) { return 0x216f; } else if (h == 0x20) { if (l == 0x14) { return 0x213d; } else if (l == 0x3e) { return 0x2131; } } else if ((h == 0xff) && (l == 0x3c)) { return 0x2140; } return QJpUnicodeConv::UnicodeToJisx0208(h, l);}/*! \internal */uint QJpUnicodeConv_JISX0221_ASCII::UnicodeToJisx0212(uint h, uint l) const{ if ((h == 0x00) && (l == 0x7e)) { return 0x0000; } if ((h == 0xff) && (l == 0x5e)) { return 0x2237; } return QJpUnicodeConv::UnicodeToJisx0212(h, l);}/* * Sun Microsystems conversion. */class QJpUnicodeConv_Sun : public QJpUnicodeConv {public: QJpUnicodeConv_Sun(int r) : QJpUnicodeConv(r) {}// uint AsciiToUnicode(uint h, uint l) const;// uint Jisx0201ToUnicode(uint h, uint l) const; uint Jisx0201LatinToUnicode(uint h, uint l) const;// uint Jisx0201KanaToUnicode(uint h, uint l) const; uint Jisx0208ToUnicode(uint h, uint l) const; uint Jisx0212ToUnicode(uint h, uint l) const; uint UnicodeToAscii(uint h, uint l) const;// uint UnicodeToJisx0201(uint h, uint l) const; uint UnicodeToJisx0201Latin(uint h, uint l) const;// uint UnicodeToJisx0201Kana(uint h, uint l) const; uint UnicodeToJisx0208(uint h, uint l) const; uint UnicodeToJisx0212(uint h, uint l) const;};uint QJpUnicodeConv_Sun::Jisx0201LatinToUnicode(uint h, uint l) const{ return AsciiToUnicode(h, l);}uint QJpUnicodeConv_Sun::Jisx0208ToUnicode(uint h, uint l) const{ if ((h == 0x21) && (l == 0x40)) { return 0xff3c; } return QJpUnicodeConv::Jisx0208ToUnicode(h, l);}uint QJpUnicodeConv_Sun::Jisx0212ToUnicode(uint h, uint l) const{#if 1 // Added by Serika Kususugawa to avoid conflict on U+007c. if ((h == 0x22) && (l == 0x37)) { return 0xff5e;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -