jpmobile 0.1.6 → 1.0.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/README +0 -0
- data/README.rdoc +58 -29
- data/Rakefile +1 -1
- data/VERSION.yml +4 -4
- data/lib/jpmobile.rb +3 -0
- data/lib/jpmobile/email.rb +17 -2
- data/lib/jpmobile/emoticon.rb +87 -23
- data/lib/jpmobile/emoticon/au.rb +644 -0
- data/lib/jpmobile/emoticon/softbank.rb +488 -0
- data/lib/jpmobile/emoticon/z_combine.rb +16 -13
- data/lib/jpmobile/hook_action_controller.rb +1 -13
- data/lib/jpmobile/hook_action_view.rb +3 -62
- data/lib/jpmobile/mail.rb +316 -0
- data/lib/jpmobile/mailer.rb +31 -0
- data/lib/jpmobile/mobile/abstract_mobile.rb +66 -0
- data/lib/jpmobile/mobile/au.rb +25 -2
- data/lib/jpmobile/mobile/docomo.rb +23 -1
- data/lib/jpmobile/mobile/emobile.rb +1 -1
- data/lib/jpmobile/mobile/softbank.rb +33 -1
- data/lib/jpmobile/mobile/vodafone.rb +1 -1
- data/lib/jpmobile/mobile/willcom.rb +1 -1
- data/lib/jpmobile/path_set.rb +40 -0
- data/lib/jpmobile/rails.rb +24 -0
- data/lib/jpmobile/resolver.rb +38 -0
- data/lib/jpmobile/util.rb +223 -14
- data/lib/tasks/jpmobile_tasks.rake +41 -48
- data/spec/rack/jpmobile/emoticon_spec.rb +3 -8
- data/spec/rack/jpmobile/filter_spec.rb +1 -1
- data/spec/rack/jpmobile/params_filter_spec.rb +4 -4
- data/spec/rack_helper.rb +5 -9
- data/spec/unit/detect_by_email_spec.rb +29 -0
- data/spec/unit/emoticon_spec.rb +90 -0
- data/spec/unit/encoding_spec.rb +102 -0
- data/spec/unit/mail_spec.rb +117 -0
- data/spec/unit/receive_mail_spec.rb +289 -0
- data/spec/unit/spec_helper.rb +8 -0
- data/spec/unit/util_spec.rb +5 -0
- data/test/rails/overrides/app/controllers/application_controller.rb +3 -2
- data/test/rails/overrides/app/controllers/template_path_controller.rb +8 -0
- data/test/rails/overrides/app/models/mobile_mailer.rb +19 -0
- data/test/rails/overrides/app/models/normal_mailer.rb +9 -0
- data/test/rails/overrides/spec/models/mobile_mailer_spec.rb +737 -0
- data/test/rails/overrides/spec/models/normal_mailer_spec.rb +34 -0
- data/test/rails/overrides/spec/requests/template_path_spec.rb +13 -7
- data/test/rails/overrides/spec/spec_helper.rb +6 -0
- data/test/rails/rails_root/app/controllers/application_controller.rb +3 -2
- data/test/rails/rails_root/app/controllers/template_path_controller.rb +8 -0
- data/test/rails/rails_root/app/models/mobile_mailer.rb +2 -1
- data/test/rails/rails_root/app/models/normal_mailer.rb +9 -0
- data/test/rails/rails_root/config/initializers/secret_token.rb +1 -1
- data/test/rails/rails_root/spec/models/mobile_mailer_spec.rb +73 -80
- data/test/rails/rails_root/spec/models/normal_mailer_spec.rb +34 -0
- data/test/rails/rails_root/spec/requests/template_path_spec.rb +13 -7
- data/test/rails/rails_root/spec/spec_helper.rb +1 -1
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile.rb +2 -1
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon.rb +7 -5
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb +1 -13
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb +3 -62
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mail.rb +162 -111
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mailer.rb +31 -0
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb +34 -3
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb +2 -5
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/docomo.rb +4 -5
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/softbank.rb +7 -8
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/path_set.rb +40 -0
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/params_filter.rb +1 -1
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rails.rb +24 -0
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb +38 -0
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb +33 -23
- metadata +43 -14
- data/test/legacy/emoticon_test.rb +0 -63
- data/test/legacy/helper.rb +0 -8
- data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_mailer.rb +0 -22
data/README
ADDED
File without changes
|
data/README.rdoc
CHANGED
@@ -13,6 +13,10 @@
|
|
13
13
|
* ディスプレイ情報(画面サイズ、ブラウザ画面サイズ、カラー・白黒、色数)の取得
|
14
14
|
* ディスプレイ情報の取得には {jpmobile-terminfo}[http://github.com/jpmobile/jpmobile-terminfo] が必要です。
|
15
15
|
* 文字コード変換機能/絵文字のキャリア間相互変換
|
16
|
+
* メールの送信
|
17
|
+
* 絵文字と漢字コードの変換
|
18
|
+
* メールの受信(experimental)
|
19
|
+
* 絵文字と漢字コードの変換
|
16
20
|
|
17
21
|
また Rails 3.0 に以下の機能を追加する
|
18
22
|
* ビューへの自動振分け
|
@@ -144,42 +148,37 @@ request.mobile.display で Jpmobile::Display クラスのインスタンスが
|
|
144
148
|
jpmobileを読み込むとDoCoMo、Au、SoftBankの絵文字を透過的に扱うことができる。
|
145
149
|
|
146
150
|
* Rails の場合は vendor/plugins に配置し、下記の設定を追加することで有効になる。
|
151
|
+
# Rack middleware を追加するメソッド
|
152
|
+
Rails.application.config.jpmobile.mobile_filter
|
147
153
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
** 下記の設定を追加することで、<form> タグの accept-charset が変更される。
|
152
|
-
|
153
|
-
# <form accept-charset="Shift_JIS" ...> などに変更する
|
154
|
-
Rails.application.config.jpmobile.form_accept_charset_conversion = true
|
154
|
+
* 下記の設定を追加することで、<form> タグの accept-charset が変更される。
|
155
|
+
# <form accept-charset="Shift_JIS" ...> などに変更する
|
156
|
+
Rails.application.config.jpmobile.form_accept_charset_conversion = true
|
155
157
|
|
156
158
|
携帯電話上では特に問題とならない。PCブラウザでテストする際に問題となるためのオプション。
|
157
159
|
|
158
160
|
* Sinatra の場合は下記のように指定する。
|
161
|
+
$LOAD_PATH << './lib/jpmobile/lib'
|
162
|
+
require 'jpmobile'
|
163
|
+
require 'jpmobile/rack'
|
159
164
|
|
160
|
-
|
161
|
-
|
162
|
-
|
165
|
+
use Jpmobile::Rack::MobileCarrier
|
166
|
+
use Jpmobile::Rack::ParamsFilter
|
167
|
+
use Jpmobile::Rack::Filter
|
163
168
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
get '/' do
|
169
|
-
erb :index
|
170
|
-
end
|
169
|
+
get '/' do
|
170
|
+
erb :index
|
171
|
+
end
|
171
172
|
|
172
173
|
Rails のみ半角・全角の自動変換フィルターが用意されている。用いるには
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
end
|
174
|
+
class MyController
|
175
|
+
hankaku_filter
|
176
|
+
end
|
177
177
|
|
178
178
|
と指定する。またtextareaやhidden/text/passwordのinputタグで半角に変換したくない場合は :input => true を指定する。
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
end
|
179
|
+
class MyController
|
180
|
+
hankaku_filter :input => true
|
181
|
+
end
|
183
182
|
|
184
183
|
Jpmobile内では、各キャリアの絵文字はUnicode私的領域上にマッピングされ、管理される。
|
185
184
|
このとき、DoCoMo、Auは公式サイト記載のマッピングが使用される。
|
@@ -194,7 +193,13 @@ Jpmobile内では、各キャリアの絵文字はUnicode私的領域上にマ
|
|
194
193
|
* 絵文字はキャリアにあわせて変換されて送出される。
|
195
194
|
* 携帯電話からの絵文字はUnicode私的領域にマップされ、UTF-8でparamsに格納される。
|
196
195
|
|
197
|
-
===
|
196
|
+
=== ビューの自動振り分け
|
197
|
+
ビューの自動振り分けを行うには、以下の設定が必要です。
|
198
|
+
|
199
|
+
class ApplicationController < ActionController::Base
|
200
|
+
include Jpmobile::ViewSelector
|
201
|
+
end
|
202
|
+
|
198
203
|
DoCoMo携帯電話からアクセスすると、
|
199
204
|
* index_mobile_docomo.html.erb
|
200
205
|
* index_mobile.html.erb
|
@@ -209,7 +214,11 @@ Auの場合は、index_mobile_au.html.erb、Softbankの場合はindex_mobile_sof
|
|
209
214
|
の順でテンプレートを検索する。
|
210
215
|
Androidの場合はindex_smart_phone_android.html.erb、Windows Phoneの場合はindex_smart_phone_windows_phone.html.erbが最初に検索される。
|
211
216
|
|
212
|
-
|
217
|
+
自動振り分けを無効化するには、アクションにおいて以下のように設定する
|
218
|
+
|
219
|
+
def index
|
220
|
+
self.lookup_context.mobile = nil
|
221
|
+
end
|
213
222
|
|
214
223
|
=== 位置情報の取得用リンクの生成
|
215
224
|
|
@@ -230,10 +239,8 @@ Androidの場合はindex_smart_phone_android.html.erb、Windows Phoneの場合
|
|
230
239
|
trans_sid 機能を使う場合には cookie session store を使用することができません。
|
231
240
|
また Rails 3.0 では Cookie が使える場合にはそちらが優先されてしまうため、:always を指定した場合に問題になる場合があります。
|
232
241
|
trans_sid を使用する際には、例えば config/initializers/session_store.rb で
|
233
|
-
|
234
242
|
Rails.application.config.session_store :active_record_store
|
235
243
|
Rails.application.config.session_options = {:cookie_only => false}
|
236
|
-
|
237
244
|
として active_record_store を使用するように設定し、:cookie_only => false として Cookie を優先しないように設定します。
|
238
245
|
このとき ApplicationController において protect_from_forgery の :secret を指定するか、
|
239
246
|
あるいは protect_from_forgery を解除する必要があるでしょう。
|
@@ -244,6 +251,28 @@ trans_sid を使用する際には、例えば config/initializers/session_store
|
|
244
251
|
link_to "hoge", :controller => "controller", :action => "action", :id => "id"
|
245
252
|
のように指定する必要があります。
|
246
253
|
|
254
|
+
=== メールの送受信
|
255
|
+
メールにて絵文字や漢字コードの変換、ビューの自動振り分けを行なうには Jpmobile::Mailer::Base を使う。
|
256
|
+
|
257
|
+
class MobileMailer < Jpmobile::Mailer::Base
|
258
|
+
default :from => "info@jpmobile-rails.org"
|
259
|
+
|
260
|
+
def registration(to)
|
261
|
+
mail(:to => to)
|
262
|
+
end
|
263
|
+
|
264
|
+
def receive(email)
|
265
|
+
email
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
* デフォルトで ISO-2022-JP エンコードで送信
|
270
|
+
* docomo/SoftBank には Shift_JIS で送信
|
271
|
+
* au は ISO-2022-JP エンコードで送信
|
272
|
+
* ビューやレイアウトの自動振り分け
|
273
|
+
* docomo であれば app/views/mobile_mailer/registration_mobile_docomo.html.erb など
|
274
|
+
* 受信に関しては、docomo/SoftBank でテストできないため、実験版とします。
|
275
|
+
|
247
276
|
== テストに必要なgemパッケージ
|
248
277
|
テストを実行するためには以下のgemパッケージが必要です。
|
249
278
|
* rails (include rack)
|
data/Rakefile
CHANGED
data/VERSION.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
---
|
2
|
-
:major:
|
3
|
-
:minor:
|
4
|
-
:patch:
|
5
|
-
:build:
|
2
|
+
:major: 1
|
3
|
+
:minor: 0
|
4
|
+
:patch: 0
|
5
|
+
:build: pre
|
data/lib/jpmobile.rb
CHANGED
data/lib/jpmobile/email.rb
CHANGED
@@ -4,13 +4,28 @@
|
|
4
4
|
module Jpmobile
|
5
5
|
# email関連の処理
|
6
6
|
module Email
|
7
|
+
module_function
|
8
|
+
|
7
9
|
# メールアドレスよりキャリア情報を取得する
|
8
10
|
# _param1_:: email メールアドレス
|
9
11
|
# return :: Jpmobile::Mobileで定義されている携帯キャリアクラス
|
10
|
-
def
|
12
|
+
def detect(email)
|
11
13
|
Mobile.carriers.each do |const|
|
12
14
|
c = Mobile.const_get(const)
|
13
|
-
return c if c::MAIL_ADDRESS_REGEXP && email
|
15
|
+
return c if c::MAIL_ADDRESS_REGEXP && email.match(/^#{c::MAIL_ADDRESS_REGEXP}$/)
|
16
|
+
end
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
20
|
+
# 含まれているメールアドレスからキャリア情報を取得する
|
21
|
+
def detect_from_mail_header(str)
|
22
|
+
Mobile.carriers.each do |const|
|
23
|
+
c = Mobile.const_get(const)
|
24
|
+
if c::MAIL_ADDRESS_REGEXP &&
|
25
|
+
str.match(/(\S+@[A-Za-z0-9\-\.\_]+)/) &&
|
26
|
+
$1.match(/^#{c::MAIL_ADDRESS_REGEXP}$/)
|
27
|
+
return c
|
28
|
+
end
|
14
29
|
end
|
15
30
|
nil
|
16
31
|
end
|
data/lib/jpmobile/emoticon.rb
CHANGED
@@ -9,8 +9,13 @@ module Jpmobile
|
|
9
9
|
%w( DOCOMO_SJIS_TO_UNICODE DOCOMO_UNICODE_TO_SJIS ).each do |const|
|
10
10
|
autoload const, 'jpmobile/emoticon/docomo'
|
11
11
|
end
|
12
|
-
|
13
|
-
|
12
|
+
%w( AU_SJIS_TO_UNICODE AU_UNICODE_TO_EMAILJIS AU_SJIS_TO_EMAIL_JIS AU_EMAILJIS_TO_UNICODE ).each do |const|
|
13
|
+
autoload const, 'jpmobile/emoticon/au'
|
14
|
+
end
|
15
|
+
%w(
|
16
|
+
SOFTBANK_UNICODE_TO_WEBCODE SOFTBANK_WEBCODE_TO_UNICODE
|
17
|
+
SOFTBANK_UNICODE_TO_SJIS SOFTBANK_SJIS_TO_UNICODE
|
18
|
+
).each do |const|
|
14
19
|
autoload const, 'jpmobile/emoticon/softbank'
|
15
20
|
end
|
16
21
|
%w( CONVERSION_TABLE_TO_DOCOMO CONVERSION_TABLE_TO_AU CONVERSION_TABLE_TO_SOFTBANK ).each do |const|
|
@@ -20,6 +25,7 @@ module Jpmobile
|
|
20
25
|
SJIS_TO_UNICODE UNICODE_TO_SJIS
|
21
26
|
SJIS_REGEXP SOFTBANK_WEBCODE_REGEXP DOCOMO_SJIS_REGEXP AU_SJIS_REGEXP SOFTBANK_UNICODE_REGEXP
|
22
27
|
EMOTICON_UNICODES UTF8_REGEXP
|
28
|
+
CONVERSION_TABLE_TO_PC_EMAIL SOFTBANK_SJIS_REGEXP AU_EMAILJIS_REGEXP
|
23
29
|
).each do |const|
|
24
30
|
autoload const, 'jpmobile/emoticon/z_combine'
|
25
31
|
end
|
@@ -33,7 +39,7 @@ module Jpmobile
|
|
33
39
|
end
|
34
40
|
end
|
35
41
|
|
36
|
-
# +str+ のなかで
|
42
|
+
# +str+ のなかでau絵文字をUnicode数値文字参照に置換した文字列を返す。
|
37
43
|
def self.external_to_unicodecr_au(str)
|
38
44
|
str.gsub(AU_SJIS_REGEXP) do |match|
|
39
45
|
sjis = match.unpack('n').first
|
@@ -42,6 +48,18 @@ module Jpmobile
|
|
42
48
|
end
|
43
49
|
end
|
44
50
|
|
51
|
+
# +str+ のなかでau絵文字をUnicode数値文字参照に置換した文字列を返す。(メール専用)
|
52
|
+
def self.external_to_unicodecr_au_mail(in_str)
|
53
|
+
str = Jpmobile::Util.ascii_8bit(in_str)
|
54
|
+
str.gsub(Jpmobile::Util.jis_string_regexp) do |jis_string|
|
55
|
+
jis_string.gsub(/[\x21-\x7e]{2}/) do |match|
|
56
|
+
jis = match.unpack('n').first
|
57
|
+
unicode = AU_EMAILJIS_TO_UNICODE[jis]
|
58
|
+
unicode ? Jpmobile::Util.ascii_8bit("\x1b\x28\x42&#x%04x;\x1b\x24\x42"%unicode) : match
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
45
63
|
# +str+のなかでUTF8のSoftBank絵文字を(+0x1000だけシフトして)Unicode数値文字参照に変換した文字列を返す。
|
46
64
|
def self.external_to_unicodecr_softbank(str)
|
47
65
|
# SoftBank Unicode
|
@@ -50,24 +68,17 @@ module Jpmobile
|
|
50
68
|
"&#x%04x;" % (unicode+0x1000)
|
51
69
|
end
|
52
70
|
end
|
71
|
+
def self.external_to_unicodecr_softbank_sjis(str)
|
72
|
+
# SoftBank Shift_JIS
|
73
|
+
str.gsub(SOFTBANK_SJIS_REGEXP) do |match|
|
74
|
+
sjis = match.unpack('n').first
|
75
|
+
unicode = SOFTBANK_SJIS_TO_UNICODE[sjis]
|
76
|
+
"&#x%04x;" % (unicode+0x1000)
|
77
|
+
end
|
78
|
+
end
|
53
79
|
def self.external_to_unicodecr_vodafone(str)
|
54
80
|
external_to_unicodecr_softbank(str)
|
55
81
|
end
|
56
|
-
# +str+のなかでWebcodeのSoftBank絵文字を(+0x1000だけシフトして)Unicode数値文字参照に変換した文字列を返す。
|
57
|
-
def self.external_to_unicodecr_jphone(str)
|
58
|
-
# SoftBank Webcode
|
59
|
-
s = str.clone
|
60
|
-
# 連続したエスケープコードが省略されている場合は切りはなす。
|
61
|
-
s.gsub!(/\x1b\x24(.)(.+?)\x0f/) do |match|
|
62
|
-
a = $1
|
63
|
-
$2.split(//).map{|x| "\x1b\x24#{a}#{x}\x0f"}.join('')
|
64
|
-
end
|
65
|
-
# Webcodeを変換
|
66
|
-
s.gsub(SOFTBANK_WEBCODE_REGEXP) do |match|
|
67
|
-
unicode = SOFTBANK_WEBCODE_TO_UNICODE[match[2,2]] + 0x1000
|
68
|
-
unicode ? ("&#x%04x;"%unicode) : match
|
69
|
-
end
|
70
|
-
end
|
71
82
|
|
72
83
|
# +str+ のなかでUnicode数値文字参照で表記された絵文字を携帯側エンコーディングに置換する。
|
73
84
|
#
|
@@ -91,16 +102,15 @@ module Jpmobile
|
|
91
102
|
# 変換先がUnicodeで指定されている。つまり対応する絵文字がある。
|
92
103
|
if sjis = UNICODE_TO_SJIS[converted]
|
93
104
|
if to_sjis
|
94
|
-
sjis_emotion = [sjis].pack('n')
|
95
|
-
if sjis_emotion.respond_to?(:force_encoding)
|
96
|
-
sjis_emotion.force_encoding("Shift_JIS")
|
97
|
-
end
|
98
|
-
sjis_emotion
|
105
|
+
sjis_emotion = Jpmobile::Util.sjis([sjis].pack('n'))
|
99
106
|
else
|
100
107
|
[converted].pack("U")
|
101
108
|
end
|
102
109
|
elsif webcode = SOFTBANK_UNICODE_TO_WEBCODE[converted-0x1000]
|
103
110
|
[converted-0x1000].pack('U')
|
111
|
+
elsif converted == GETA
|
112
|
+
# PCで〓を表示する場合
|
113
|
+
[GETA].pack("U")
|
104
114
|
else
|
105
115
|
# キャリア変換テーブルに指定されていたUnicodeに対応する
|
106
116
|
# 携帯側エンコーディングが見つからない(変換テーブルの不備の可能性あり)。
|
@@ -137,5 +147,59 @@ module Jpmobile
|
|
137
147
|
"&#x%04x;" % match.unpack('U').first
|
138
148
|
end
|
139
149
|
end
|
150
|
+
|
151
|
+
# +str+ のなかでUnicode数値文字参照で表記された絵文字をメール送信用JISコードに変換する
|
152
|
+
# au 専用
|
153
|
+
def self.unicodecr_to_au_email(in_str)
|
154
|
+
str = Jpmobile::Util.ascii_8bit(in_str)
|
155
|
+
regexp = Regexp.compile(Jpmobile::Util.ascii_8bit("&#x([0-9a-f]{4});"), Regexp::IGNORECASE)
|
156
|
+
str.gsub(regexp) do |match|
|
157
|
+
unicode = $1.scanf("%x").first
|
158
|
+
converted = CONVERSION_TABLE_TO_AU[unicode]
|
159
|
+
|
160
|
+
# メール用エンコーディングに変換する
|
161
|
+
case converted
|
162
|
+
when Integer
|
163
|
+
if sjis = UNICODE_TO_SJIS[converted]
|
164
|
+
if email_jis = SJIS_TO_EMAIL_JIS[sjis]
|
165
|
+
Jpmobile::Util.ascii_8bit("\x1b\x24\x42#{[email_jis].pack('n')}\x1b\x28\x42")
|
166
|
+
else
|
167
|
+
Jpmobile::Util.ascii_8bit([sjis].pack('n'))
|
168
|
+
end
|
169
|
+
else
|
170
|
+
match
|
171
|
+
end
|
172
|
+
when String
|
173
|
+
# FIXME: 絵文字の代替が文章でいいかどうかの検証
|
174
|
+
Jpmobile::Util.ascii_8bit(Jpmobile::Util.utf8_to_jis(converted))
|
175
|
+
else
|
176
|
+
match
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
# +str+ のなかでUnicode数値文字参照で表記された絵文字をメール送信用JISコードに変換する
|
182
|
+
# softbank 専用
|
183
|
+
def self.unicodecr_to_softbank_email(str)
|
184
|
+
str.gsub(/&#x([0-9a-f]{4});/i) do |match|
|
185
|
+
unicode = $1.scanf("%x").first
|
186
|
+
converted = CONVERSION_TABLE_TO_SOFTBANK[unicode]
|
187
|
+
|
188
|
+
# メール用エンコーディングに変換する
|
189
|
+
case converted
|
190
|
+
when Integer
|
191
|
+
if sjis = SOFTBANK_UNICODE_TO_SJIS[converted-0x1000]
|
192
|
+
Jpmobile::Util.sjis([sjis].pack('n'))
|
193
|
+
else
|
194
|
+
match
|
195
|
+
end
|
196
|
+
when String
|
197
|
+
# FIXME: 絵文字の代替が文章でいいかどうかの検証
|
198
|
+
Jpmobile::Util.utf8_to_sjis(converted)
|
199
|
+
else
|
200
|
+
match
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
140
204
|
end
|
141
205
|
end
|
data/lib/jpmobile/emoticon/au.rb
CHANGED
@@ -1285,3 +1285,647 @@ Jpmobile::Emoticon::AU_EMAILJIS_TO_UNICODE = {
|
|
1285
1285
|
0x7B6C=>0xEB87,
|
1286
1286
|
0x7B6D=>0xEB88,
|
1287
1287
|
}.freeze
|
1288
|
+
Jpmobile::Emoticon::AU_UNICODE_TO_EMAILJIS = Jpmobile::Emoticon::AU_EMAILJIS_TO_UNICODE.invert.freeze
|
1289
|
+
Jpmobile::Emoticon::AU_SJIS_TO_EMAIL_JIS = {
|
1290
|
+
0xF659 => 0x753A,
|
1291
|
+
0xF75E => 0x773F,
|
1292
|
+
0xF65A => 0x753B,
|
1293
|
+
0xF75F => 0x7740,
|
1294
|
+
0xF65B => 0x753C,
|
1295
|
+
0xF760 => 0x7741,
|
1296
|
+
0xF748 => 0x7729,
|
1297
|
+
0xF761 => 0x7742,
|
1298
|
+
0xF749 => 0x772A,
|
1299
|
+
0xF762 => 0x7743,
|
1300
|
+
0xF74A => 0x772B,
|
1301
|
+
0xF763 => 0x7744,
|
1302
|
+
0xF74B => 0x772C,
|
1303
|
+
0xF764 => 0x7745,
|
1304
|
+
0xF74C => 0x772D,
|
1305
|
+
0xF765 => 0x7746,
|
1306
|
+
0xF74D => 0x772E,
|
1307
|
+
0xF766 => 0x7747,
|
1308
|
+
0xF74E => 0x772F,
|
1309
|
+
0xF767 => 0x7748,
|
1310
|
+
0xF74F => 0x7730,
|
1311
|
+
0xF768 => 0x7749,
|
1312
|
+
0xF69A => 0x757A,
|
1313
|
+
0xF769 => 0x774A,
|
1314
|
+
0xF6EA => 0x766C,
|
1315
|
+
0xF660 => 0x7541,
|
1316
|
+
0xF796 => 0x7776,
|
1317
|
+
0xF693 => 0x7573,
|
1318
|
+
0xF65E => 0x753F,
|
1319
|
+
0xF7B1 => 0x7833,
|
1320
|
+
0xF65F => 0x7540,
|
1321
|
+
0xF661 => 0x7542,
|
1322
|
+
0xF750 => 0x7731,
|
1323
|
+
0xF6EB => 0x766D,
|
1324
|
+
0xF751 => 0x7732,
|
1325
|
+
0xF77C => 0x775D,
|
1326
|
+
0xF752 => 0x7733,
|
1327
|
+
0xF6D3 => 0x7655,
|
1328
|
+
0xF753 => 0x7734,
|
1329
|
+
0xF7B2 => 0x7834,
|
1330
|
+
0xF754 => 0x7735,
|
1331
|
+
0xF69B => 0x757B,
|
1332
|
+
0xF755 => 0x7736,
|
1333
|
+
0xF6EC => 0x766E,
|
1334
|
+
0xF756 => 0x7737,
|
1335
|
+
0xF76A => 0x774B,
|
1336
|
+
0xF757 => 0x7738,
|
1337
|
+
0xF76B => 0x774C,
|
1338
|
+
0xF797 => 0x7777,
|
1339
|
+
0xF77D => 0x775E,
|
1340
|
+
0xF758 => 0x7739,
|
1341
|
+
0xF798 => 0x7778,
|
1342
|
+
0xF759 => 0x773A,
|
1343
|
+
0xF654 => 0x7535,
|
1344
|
+
0xF75A => 0x773B,
|
1345
|
+
0xF77E => 0x775F,
|
1346
|
+
0xF75B => 0x773C,
|
1347
|
+
0xF662 => 0x7543,
|
1348
|
+
0xF75C => 0x773D,
|
1349
|
+
0xF76C => 0x774D,
|
1350
|
+
0xF75D => 0x773E,
|
1351
|
+
0xF76D => 0x774E,
|
1352
|
+
0xF76E => 0x774F,
|
1353
|
+
0xF6EE => 0x7670,
|
1354
|
+
0xF76F => 0x7750,
|
1355
|
+
0xF664 => 0x7545,
|
1356
|
+
0xF69C => 0x757C,
|
1357
|
+
0xF694 => 0x7574,
|
1358
|
+
0xF770 => 0x7751,
|
1359
|
+
0xF782 => 0x7762,
|
1360
|
+
0xF780 => 0x7760,
|
1361
|
+
0xF65C => 0x753D,
|
1362
|
+
0xF6D4 => 0x7656,
|
1363
|
+
0xF642 => 0x7523,
|
1364
|
+
0xF663 => 0x7544,
|
1365
|
+
0xF783 => 0x7763,
|
1366
|
+
0xF771 => 0x7752,
|
1367
|
+
0xF784 => 0x7764,
|
1368
|
+
0xF772 => 0x7753,
|
1369
|
+
0xF785 => 0x7765,
|
1370
|
+
0xF6ED => 0x766F,
|
1371
|
+
0xF786 => 0x7766,
|
1372
|
+
0xF773 => 0x7754,
|
1373
|
+
0xF6EF => 0x7671,
|
1374
|
+
0xF6B8 => 0x763A,
|
1375
|
+
0xF787 => 0x7767,
|
1376
|
+
0xF640 => 0x7521,
|
1377
|
+
0xF676 => 0x7557,
|
1378
|
+
0xF644 => 0x7525,
|
1379
|
+
0xF665 => 0x7546,
|
1380
|
+
0xF64E => 0x752F,
|
1381
|
+
0xF6FA => 0x767C,
|
1382
|
+
0xF6B9 => 0x763B,
|
1383
|
+
0xF79A => 0x777A,
|
1384
|
+
0xF7AC => 0x782E,
|
1385
|
+
0xF6F0 => 0x7672,
|
1386
|
+
0xF6D5 => 0x7657,
|
1387
|
+
0xF79B => 0x777B,
|
1388
|
+
0xF774 => 0x7755,
|
1389
|
+
0xF684 => 0x7564,
|
1390
|
+
0xF775 => 0x7756,
|
1391
|
+
0xF6BD => 0x763F,
|
1392
|
+
0xF674 => 0x7555,
|
1393
|
+
0xF79C => 0x777C,
|
1394
|
+
0xF7AD => 0x782F,
|
1395
|
+
0xF79D => 0x777D,
|
1396
|
+
0xF7B3 => 0x7835,
|
1397
|
+
0xF6D7 => 0x7659,
|
1398
|
+
0xF6D6 => 0x7658,
|
1399
|
+
0xF778 => 0x7759,
|
1400
|
+
0xF799 => 0x7779,
|
1401
|
+
0xF779 => 0x775A,
|
1402
|
+
0xF776 => 0x7757,
|
1403
|
+
0xF6F1 => 0x7673,
|
1404
|
+
0xF777 => 0x7758,
|
1405
|
+
0xF6F2 => 0x7674,
|
1406
|
+
0xF790 => 0x7770,
|
1407
|
+
0xF788 => 0x7768,
|
1408
|
+
0xF675 => 0x7556,
|
1409
|
+
0xF677 => 0x7558,
|
1410
|
+
0xF781 => 0x7761,
|
1411
|
+
0xF79E => 0x777E,
|
1412
|
+
0xF7B4 => 0x7836,
|
1413
|
+
0xF6F3 => 0x7675,
|
1414
|
+
0xF68A => 0x756A,
|
1415
|
+
0xF686 => 0x7566,
|
1416
|
+
0xF79F => 0x7821,
|
1417
|
+
0xF78D => 0x776D,
|
1418
|
+
0xF791 => 0x7771,
|
1419
|
+
0xF67A => 0x755B,
|
1420
|
+
0xF792 => 0x7772,
|
1421
|
+
0xF793 => 0x7773,
|
1422
|
+
0xF6F4 => 0x7676,
|
1423
|
+
0xF69D => 0x757D,
|
1424
|
+
0xF7A0 => 0x7822,
|
1425
|
+
0xF7A5 => 0x7827,
|
1426
|
+
0xF789 => 0x7769,
|
1427
|
+
0xF7A6 => 0x7828,
|
1428
|
+
0xF77A => 0x775B,
|
1429
|
+
0xF6DA => 0x765C,
|
1430
|
+
0xF6A7 => 0x7629,
|
1431
|
+
0xF7A7 => 0x7829,
|
1432
|
+
0xF6BA => 0x763C,
|
1433
|
+
0xF6F8 => 0x767A,
|
1434
|
+
0xF7A1 => 0x7823,
|
1435
|
+
0xF6F9 => 0x767B,
|
1436
|
+
0xF77B => 0x775C,
|
1437
|
+
0xF666 => 0x7547,
|
1438
|
+
0xF78A => 0x776A,
|
1439
|
+
0xF68C => 0x756C,
|
1440
|
+
0xF6F5 => 0x7677,
|
1441
|
+
0xF68D => 0x756D,
|
1442
|
+
0xF7A2 => 0x7824,
|
1443
|
+
0xF6A1 => 0x7623,
|
1444
|
+
0xF6D8 => 0x765A,
|
1445
|
+
0xF7A8 => 0x782A,
|
1446
|
+
0xF6D9 => 0x765B,
|
1447
|
+
0xF68E => 0x756E,
|
1448
|
+
0xF78B => 0x776B,
|
1449
|
+
0xF7A9 => 0x782B,
|
1450
|
+
0xF678 => 0x7559,
|
1451
|
+
0xF7AA => 0x782C,
|
1452
|
+
0xF6A8 => 0x762A,
|
1453
|
+
0xF7AB => 0x782D,
|
1454
|
+
0xF6F6 => 0x7678,
|
1455
|
+
0xF655 => 0x7536,
|
1456
|
+
0xF685 => 0x7565,
|
1457
|
+
0xF656 => 0x7537,
|
1458
|
+
0xF78C => 0x776C,
|
1459
|
+
0xF657 => 0x7538,
|
1460
|
+
0xF68B => 0x756B,
|
1461
|
+
0xF658 => 0x7539,
|
1462
|
+
0xF679 => 0x755A,
|
1463
|
+
0xF6FB => 0x767D,
|
1464
|
+
0xF7A3 => 0x7825,
|
1465
|
+
0xF6FC => 0x767E,
|
1466
|
+
0xF7AE => 0x7830,
|
1467
|
+
0xF740 => 0x7721,
|
1468
|
+
0xF7A4 => 0x7826,
|
1469
|
+
0xF741 => 0x7722,
|
1470
|
+
0xF7AF => 0x7831,
|
1471
|
+
0xF742 => 0x7723,
|
1472
|
+
0xF7B0 => 0x7832,
|
1473
|
+
0xF743 => 0x7724,
|
1474
|
+
0xF6F7 => 0x7679,
|
1475
|
+
0xF744 => 0x7725,
|
1476
|
+
0xF745 => 0x7726,
|
1477
|
+
0xF643 => 0x7524,
|
1478
|
+
0xF746 => 0x7727,
|
1479
|
+
0xF68F => 0x756F,
|
1480
|
+
0xF747 => 0x7728,
|
1481
|
+
0xF690 => 0x7570,
|
1482
|
+
0xF641 => 0x7522,
|
1483
|
+
0xF691 => 0x7571,
|
1484
|
+
0xF65D => 0x753E,
|
1485
|
+
0xF692 => 0x7572,
|
1486
|
+
0xF667 => 0x7548,
|
1487
|
+
0xF645 => 0x7526,
|
1488
|
+
0xF668 => 0x7549,
|
1489
|
+
0xF695 => 0x7575,
|
1490
|
+
0xF669 => 0x754A,
|
1491
|
+
0xF696 => 0x7576,
|
1492
|
+
0xF66A => 0x754B,
|
1493
|
+
0xF697 => 0x7577,
|
1494
|
+
0xF66B => 0x754C,
|
1495
|
+
0xF698 => 0x7578,
|
1496
|
+
0xF66C => 0x754D,
|
1497
|
+
0xF699 => 0x7579,
|
1498
|
+
0xF66D => 0x754E,
|
1499
|
+
0xF646 => 0x7527,
|
1500
|
+
0xF66E => 0x754F,
|
1501
|
+
0xF647 => 0x7528,
|
1502
|
+
0xF66F => 0x7550,
|
1503
|
+
0xF69E => 0x757E,
|
1504
|
+
0xF670 => 0x7551,
|
1505
|
+
0xF69F => 0x7621,
|
1506
|
+
0xF671 => 0x7552,
|
1507
|
+
0xF6A0 => 0x7622,
|
1508
|
+
0xF672 => 0x7553,
|
1509
|
+
0xF6A2 => 0x7624,
|
1510
|
+
0xF673 => 0x7554,
|
1511
|
+
0xF6A3 => 0x7625,
|
1512
|
+
0xF67B => 0x755C,
|
1513
|
+
0xF6A4 => 0x7626,
|
1514
|
+
0xF67C => 0x755D,
|
1515
|
+
0xF6A5 => 0x7627,
|
1516
|
+
0xF67D => 0x755E,
|
1517
|
+
0xF6A6 => 0x7628,
|
1518
|
+
0xF67E => 0x755F,
|
1519
|
+
0xF6A9 => 0x762B,
|
1520
|
+
0xF680 => 0x7560,
|
1521
|
+
0xF6AA => 0x762C,
|
1522
|
+
0xF681 => 0x7561,
|
1523
|
+
0xF6AB => 0x762D,
|
1524
|
+
0xF682 => 0x7562,
|
1525
|
+
0xF6AC => 0x762E,
|
1526
|
+
0xF683 => 0x7563,
|
1527
|
+
0xF6AD => 0x762F,
|
1528
|
+
0xF78E => 0x776E,
|
1529
|
+
0xF6AE => 0x7630,
|
1530
|
+
0xF78F => 0x776F,
|
1531
|
+
0xF6AF => 0x7631,
|
1532
|
+
0xF687 => 0x7567,
|
1533
|
+
0xF648 => 0x7529,
|
1534
|
+
0xF688 => 0x7568,
|
1535
|
+
0xF6B0 => 0x7632,
|
1536
|
+
0xF689 => 0x7569,
|
1537
|
+
0xF6B1 => 0x7633,
|
1538
|
+
0xF6B2 => 0x7634,
|
1539
|
+
0xF6CB => 0x764D,
|
1540
|
+
0xF6B3 => 0x7635,
|
1541
|
+
0xF6CC => 0x764E,
|
1542
|
+
0xF6B4 => 0x7636,
|
1543
|
+
0xF6CD => 0x764F,
|
1544
|
+
0xF6B5 => 0x7637,
|
1545
|
+
0xF6CE => 0x7650,
|
1546
|
+
0xF6B6 => 0x7638,
|
1547
|
+
0xF6CF => 0x7651,
|
1548
|
+
0xF6B7 => 0x7639,
|
1549
|
+
0xF6D0 => 0x7652,
|
1550
|
+
0xF6BB => 0x763D,
|
1551
|
+
0xF6D1 => 0x7653,
|
1552
|
+
0xF6BC => 0x763E,
|
1553
|
+
0xF6D2 => 0x7654,
|
1554
|
+
0xF649 => 0x752A,
|
1555
|
+
0xF6DB => 0x765D,
|
1556
|
+
0xF64A => 0x752B,
|
1557
|
+
0xF6DC => 0x765E,
|
1558
|
+
0xF64B => 0x752C,
|
1559
|
+
0xF6DD => 0x765F,
|
1560
|
+
0xF64C => 0x752D,
|
1561
|
+
0xF6DE => 0x7660,
|
1562
|
+
0xF64D => 0x752E,
|
1563
|
+
0xF6DF => 0x7661,
|
1564
|
+
0xF6BE => 0x7640,
|
1565
|
+
0xF6E0 => 0x7662,
|
1566
|
+
0xF6BF => 0x7641,
|
1567
|
+
0xF6E1 => 0x7663,
|
1568
|
+
0xF6C0 => 0x7642,
|
1569
|
+
0xF6E2 => 0x7664,
|
1570
|
+
0xF64F => 0x7530,
|
1571
|
+
0xF6E3 => 0x7665,
|
1572
|
+
0xF650 => 0x7531,
|
1573
|
+
0xF6E4 => 0x7666,
|
1574
|
+
0xF651 => 0x7532,
|
1575
|
+
0xF794 => 0x7774,
|
1576
|
+
0xF652 => 0x7533,
|
1577
|
+
0xF795 => 0x7775,
|
1578
|
+
0xF653 => 0x7534,
|
1579
|
+
0xF6E5 => 0x7667,
|
1580
|
+
0xF6C1 => 0x7643,
|
1581
|
+
0xF6E6 => 0x7668,
|
1582
|
+
0xF6C2 => 0x7644,
|
1583
|
+
0xF6E7 => 0x7669,
|
1584
|
+
0xF6C3 => 0x7645,
|
1585
|
+
0xF6E8 => 0x766A,
|
1586
|
+
0xF6C4 => 0x7646,
|
1587
|
+
0xF6E9 => 0x766B,
|
1588
|
+
0xF6C5 => 0x7647,
|
1589
|
+
0xF7B5 => 0x7837,
|
1590
|
+
0xF6C6 => 0x7648,
|
1591
|
+
0xF7B6 => 0x7838,
|
1592
|
+
0xF6C7 => 0x7649,
|
1593
|
+
0xF7B7 => 0x7839,
|
1594
|
+
0xF6C8 => 0x764A,
|
1595
|
+
0xF7B8 => 0x783A,
|
1596
|
+
0xF6C9 => 0x764B,
|
1597
|
+
0xF7B9 => 0x783B,
|
1598
|
+
0xF6CA => 0x764C,
|
1599
|
+
0xF7BA => 0x783C,
|
1600
|
+
0xF7BB => 0x783D,
|
1601
|
+
0xF7ED => 0x786F,
|
1602
|
+
0xF7BC => 0x783E,
|
1603
|
+
0xF7EE => 0x7870,
|
1604
|
+
0xF7BD => 0x783F,
|
1605
|
+
0xF7EF => 0x7871,
|
1606
|
+
0xF7BE => 0x7840,
|
1607
|
+
0xF7F0 => 0x7872,
|
1608
|
+
0xF7BF => 0x7841,
|
1609
|
+
0xF7F1 => 0x7873,
|
1610
|
+
0xF7C0 => 0x7842,
|
1611
|
+
0xF7F2 => 0x7874,
|
1612
|
+
0xF7C1 => 0x7843,
|
1613
|
+
0xF7F3 => 0x7875,
|
1614
|
+
0xF7C2 => 0x7844,
|
1615
|
+
0xF7F4 => 0x7876,
|
1616
|
+
0xF7C3 => 0x7845,
|
1617
|
+
0xF7F5 => 0x7877,
|
1618
|
+
0xF7C4 => 0x7846,
|
1619
|
+
0xF7F6 => 0x7878,
|
1620
|
+
0xF7C5 => 0x7847,
|
1621
|
+
0xF7F7 => 0x7879,
|
1622
|
+
0xF7C6 => 0x7848,
|
1623
|
+
0xF7F8 => 0x787A,
|
1624
|
+
0xF7C7 => 0x7849,
|
1625
|
+
0xF7F9 => 0x787B,
|
1626
|
+
0xF7C8 => 0x784A,
|
1627
|
+
0xF7FA => 0x787C,
|
1628
|
+
0xF7C9 => 0x784B,
|
1629
|
+
0xF7FB => 0x787D,
|
1630
|
+
0xF7CA => 0x784C,
|
1631
|
+
0xF7FC => 0x787E,
|
1632
|
+
0xF7CB => 0x784D,
|
1633
|
+
0xF340 => 0x7921,
|
1634
|
+
0xF7CC => 0x784E,
|
1635
|
+
0xF341 => 0x7922,
|
1636
|
+
0xF7CD => 0x784F,
|
1637
|
+
0xF342 => 0x7923,
|
1638
|
+
0xF7CE => 0x7850,
|
1639
|
+
0xF343 => 0x7924,
|
1640
|
+
0xF7CF => 0x7851,
|
1641
|
+
0xF344 => 0x7925,
|
1642
|
+
0xF7D0 => 0x7852,
|
1643
|
+
0xF345 => 0x7926,
|
1644
|
+
0xF7D1 => 0x7853,
|
1645
|
+
0xF346 => 0x7927,
|
1646
|
+
0xF7E5 => 0x7867,
|
1647
|
+
0xF347 => 0x7928,
|
1648
|
+
0xF7E6 => 0x7868,
|
1649
|
+
0xF348 => 0x7929,
|
1650
|
+
0xF7E7 => 0x7869,
|
1651
|
+
0xF349 => 0x792A,
|
1652
|
+
0xF7E8 => 0x786A,
|
1653
|
+
0xF34A => 0x792B,
|
1654
|
+
0xF7E9 => 0x786B,
|
1655
|
+
0xF34B => 0x792C,
|
1656
|
+
0xF7EA => 0x786C,
|
1657
|
+
0xF34C => 0x792D,
|
1658
|
+
0xF7EB => 0x786D,
|
1659
|
+
0xF34D => 0x792E,
|
1660
|
+
0xF7EC => 0x786E,
|
1661
|
+
0xF34E => 0x792F,
|
1662
|
+
0xF34F => 0x7930,
|
1663
|
+
0xF36E => 0x794F,
|
1664
|
+
0xF350 => 0x7931,
|
1665
|
+
0xF36F => 0x7950,
|
1666
|
+
0xF351 => 0x7932,
|
1667
|
+
0xF370 => 0x7951,
|
1668
|
+
0xF352 => 0x7933,
|
1669
|
+
0xF371 => 0x7952,
|
1670
|
+
0xF353 => 0x7934,
|
1671
|
+
0xF372 => 0x7953,
|
1672
|
+
0xF354 => 0x7935,
|
1673
|
+
0xF373 => 0x7954,
|
1674
|
+
0xF355 => 0x7936,
|
1675
|
+
0xF374 => 0x7955,
|
1676
|
+
0xF356 => 0x7937,
|
1677
|
+
0xF375 => 0x7956,
|
1678
|
+
0xF357 => 0x7938,
|
1679
|
+
0xF376 => 0x7957,
|
1680
|
+
0xF358 => 0x7939,
|
1681
|
+
0xF377 => 0x7958,
|
1682
|
+
0xF359 => 0x793A,
|
1683
|
+
0xF378 => 0x7959,
|
1684
|
+
0xF35A => 0x793B,
|
1685
|
+
0xF379 => 0x795A,
|
1686
|
+
0xF35B => 0x793C,
|
1687
|
+
0xF37A => 0x795B,
|
1688
|
+
0xF35C => 0x793D,
|
1689
|
+
0xF37B => 0x795C,
|
1690
|
+
0xF35D => 0x793E,
|
1691
|
+
0xF37C => 0x795D,
|
1692
|
+
0xF35E => 0x793F,
|
1693
|
+
0xF37D => 0x795E,
|
1694
|
+
0xF35F => 0x7940,
|
1695
|
+
0xF37E => 0x795F,
|
1696
|
+
0xF360 => 0x7941,
|
1697
|
+
0xF380 => 0x7960,
|
1698
|
+
0xF361 => 0x7942,
|
1699
|
+
0xF381 => 0x7961,
|
1700
|
+
0xF362 => 0x7943,
|
1701
|
+
0xF382 => 0x7962,
|
1702
|
+
0xF363 => 0x7944,
|
1703
|
+
0xF383 => 0x7963,
|
1704
|
+
0xF364 => 0x7945,
|
1705
|
+
0xF384 => 0x7964,
|
1706
|
+
0xF365 => 0x7946,
|
1707
|
+
0xF385 => 0x7965,
|
1708
|
+
0xF366 => 0x7947,
|
1709
|
+
0xF386 => 0x7966,
|
1710
|
+
0xF367 => 0x7948,
|
1711
|
+
0xF387 => 0x7967,
|
1712
|
+
0xF368 => 0x7949,
|
1713
|
+
0xF388 => 0x7968,
|
1714
|
+
0xF369 => 0x794A,
|
1715
|
+
0xF389 => 0x7969,
|
1716
|
+
0xF36A => 0x794B,
|
1717
|
+
0xF38A => 0x796A,
|
1718
|
+
0xF36B => 0x794C,
|
1719
|
+
0xF38B => 0x796B,
|
1720
|
+
0xF36C => 0x794D,
|
1721
|
+
0xF38C => 0x796C,
|
1722
|
+
0xF36D => 0x794E,
|
1723
|
+
0xF38D => 0x796D,
|
1724
|
+
0xF38E => 0x796E,
|
1725
|
+
0xF3AD => 0x7A2F,
|
1726
|
+
0xF38F => 0x796F,
|
1727
|
+
0xF3AE => 0x7A30,
|
1728
|
+
0xF390 => 0x7970,
|
1729
|
+
0xF3AF => 0x7A31,
|
1730
|
+
0xF391 => 0x7971,
|
1731
|
+
0xF3B0 => 0x7A32,
|
1732
|
+
0xF392 => 0x7972,
|
1733
|
+
0xF3B1 => 0x7A33,
|
1734
|
+
0xF393 => 0x7973,
|
1735
|
+
0xF3B2 => 0x7A34,
|
1736
|
+
0xF394 => 0x7974,
|
1737
|
+
0xF3B3 => 0x7A35,
|
1738
|
+
0xF395 => 0x7975,
|
1739
|
+
0xF3B4 => 0x7A36,
|
1740
|
+
0xF396 => 0x7976,
|
1741
|
+
0xF3B5 => 0x7A37,
|
1742
|
+
0xF397 => 0x7977,
|
1743
|
+
0xF3B6 => 0x7A38,
|
1744
|
+
0xF398 => 0x7978,
|
1745
|
+
0xF3B7 => 0x7A39,
|
1746
|
+
0xF399 => 0x7979,
|
1747
|
+
0xF3B8 => 0x7A3A,
|
1748
|
+
0xF39A => 0x797A,
|
1749
|
+
0xF3B9 => 0x7A3B,
|
1750
|
+
0xF39B => 0x797B,
|
1751
|
+
0xF3BA => 0x7A3C,
|
1752
|
+
0xF39C => 0x797C,
|
1753
|
+
0xF3BB => 0x7A3D,
|
1754
|
+
0xF39D => 0x797D,
|
1755
|
+
0xF3BC => 0x7A3E,
|
1756
|
+
0xF39E => 0x797E,
|
1757
|
+
0xF3BD => 0x7A3F,
|
1758
|
+
0xF39F => 0x7A21,
|
1759
|
+
0xF3BE => 0x7A40,
|
1760
|
+
0xF3A0 => 0x7A22,
|
1761
|
+
0xF3BF => 0x7A41,
|
1762
|
+
0xF3A1 => 0x7A23,
|
1763
|
+
0xF3C0 => 0x7A42,
|
1764
|
+
0xF3A2 => 0x7A24,
|
1765
|
+
0xF3C1 => 0x7A43,
|
1766
|
+
0xF3A3 => 0x7A25,
|
1767
|
+
0xF3C2 => 0x7A44,
|
1768
|
+
0xF3A4 => 0x7A26,
|
1769
|
+
0xF3C3 => 0x7A45,
|
1770
|
+
0xF3A5 => 0x7A27,
|
1771
|
+
0xF3C4 => 0x7A46,
|
1772
|
+
0xF3A6 => 0x7A28,
|
1773
|
+
0xF3C5 => 0x7A47,
|
1774
|
+
0xF3A7 => 0x7A29,
|
1775
|
+
0xF3C6 => 0x7A48,
|
1776
|
+
0xF3A8 => 0x7A2A,
|
1777
|
+
0xF3C7 => 0x7A49,
|
1778
|
+
0xF3A9 => 0x7A2B,
|
1779
|
+
0xF3C8 => 0x7A4A,
|
1780
|
+
0xF3AA => 0x7A2C,
|
1781
|
+
0xF3C9 => 0x7A4B,
|
1782
|
+
0xF3AB => 0x7A2D,
|
1783
|
+
0xF3CA => 0x7A4C,
|
1784
|
+
0xF3AC => 0x7A2E,
|
1785
|
+
0xF3CB => 0x7A4D,
|
1786
|
+
0xF3CC => 0x7A4E,
|
1787
|
+
0xF3D8 => 0x7A5A,
|
1788
|
+
0xF3CD => 0x7A4F,
|
1789
|
+
0xF3D9 => 0x7A5B,
|
1790
|
+
0xF3CE => 0x7A50,
|
1791
|
+
0xF3DA => 0x7A5C,
|
1792
|
+
0xF7D2 => 0x7854,
|
1793
|
+
0xF3DB => 0x7A5D,
|
1794
|
+
0xF7D3 => 0x7855,
|
1795
|
+
0xF3DC => 0x7A5E,
|
1796
|
+
0xF7D4 => 0x7856,
|
1797
|
+
0xF3DD => 0x7A5F,
|
1798
|
+
0xF7D5 => 0x7857,
|
1799
|
+
0xF3DE => 0x7A60,
|
1800
|
+
0xF7D6 => 0x7858,
|
1801
|
+
0xF3DF => 0x7A61,
|
1802
|
+
0xF7D7 => 0x7859,
|
1803
|
+
0xF3E0 => 0x7A62,
|
1804
|
+
0xF7D8 => 0x785A,
|
1805
|
+
0xF3E1 => 0x7A63,
|
1806
|
+
0xF7D9 => 0x785B,
|
1807
|
+
0xF3E2 => 0x7A64,
|
1808
|
+
0xF7DA => 0x785C,
|
1809
|
+
0xF3E3 => 0x7A65,
|
1810
|
+
0xF7DB => 0x785D,
|
1811
|
+
0xF3E4 => 0x7A66,
|
1812
|
+
0xF7DC => 0x785E,
|
1813
|
+
0xF3E5 => 0x7A67,
|
1814
|
+
0xF7DD => 0x785F,
|
1815
|
+
0xF3E6 => 0x7A68,
|
1816
|
+
0xF7DE => 0x7860,
|
1817
|
+
0xF3E7 => 0x7A69,
|
1818
|
+
0xF7DF => 0x7861,
|
1819
|
+
0xF3E8 => 0x7A6A,
|
1820
|
+
0xF7E0 => 0x7862,
|
1821
|
+
0xF3E9 => 0x7A6B,
|
1822
|
+
0xF7E1 => 0x7863,
|
1823
|
+
0xF3EA => 0x7A6C,
|
1824
|
+
0xF7E2 => 0x7864,
|
1825
|
+
0xF3EB => 0x7A6D,
|
1826
|
+
0xF7E3 => 0x7865,
|
1827
|
+
0xF3EC => 0x7A6E,
|
1828
|
+
0xF7E4 => 0x7866,
|
1829
|
+
0xF3ED => 0x7A6F,
|
1830
|
+
0xF3CF => 0x7A51,
|
1831
|
+
0xF3EE => 0x7A70,
|
1832
|
+
0xF3D0 => 0x7A52,
|
1833
|
+
0xF3EF => 0x7A71,
|
1834
|
+
0xF3D1 => 0x7A53,
|
1835
|
+
0xF3F0 => 0x7A72,
|
1836
|
+
0xF3D2 => 0x7A54,
|
1837
|
+
0xF3F1 => 0x7A73,
|
1838
|
+
0xF3D3 => 0x7A55,
|
1839
|
+
0xF3F2 => 0x7A74,
|
1840
|
+
0xF3D4 => 0x7A56,
|
1841
|
+
0xF3F3 => 0x7A75,
|
1842
|
+
0xF3D5 => 0x7A57,
|
1843
|
+
0xF3F4 => 0x7A76,
|
1844
|
+
0xF3D6 => 0x7A58,
|
1845
|
+
0xF3F5 => 0x7A77,
|
1846
|
+
0xF3D7 => 0x7A59,
|
1847
|
+
0xF3F6 => 0x7A78,
|
1848
|
+
0xF3F7 => 0x7A79,
|
1849
|
+
0xF459 => 0x7B3A,
|
1850
|
+
0xF3F8 => 0x7A7A,
|
1851
|
+
0xF45A => 0x7B3B,
|
1852
|
+
0xF3F9 => 0x7A7B,
|
1853
|
+
0xF45B => 0x7B3C,
|
1854
|
+
0xF3FA => 0x7A7C,
|
1855
|
+
0xF45C => 0x7B3D,
|
1856
|
+
0xF3FB => 0x7A7D,
|
1857
|
+
0xF45D => 0x7B3E,
|
1858
|
+
0xF3FC => 0x7A7E,
|
1859
|
+
0xF45E => 0x7B3F,
|
1860
|
+
0xF440 => 0x7B21,
|
1861
|
+
0xF45F => 0x7B40,
|
1862
|
+
0xF441 => 0x7B22,
|
1863
|
+
0xF460 => 0x7B41,
|
1864
|
+
0xF442 => 0x7B23,
|
1865
|
+
0xF461 => 0x7B42,
|
1866
|
+
0xF443 => 0x7B24,
|
1867
|
+
0xF462 => 0x7B43,
|
1868
|
+
0xF444 => 0x7B25,
|
1869
|
+
0xF463 => 0x7B44,
|
1870
|
+
0xF445 => 0x7B26,
|
1871
|
+
0xF464 => 0x7B45,
|
1872
|
+
0xF446 => 0x7B27,
|
1873
|
+
0xF465 => 0x7B46,
|
1874
|
+
0xF447 => 0x7B28,
|
1875
|
+
0xF466 => 0x7B47,
|
1876
|
+
0xF448 => 0x7B29,
|
1877
|
+
0xF467 => 0x7B48,
|
1878
|
+
0xF449 => 0x7B2A,
|
1879
|
+
0xF468 => 0x7B49,
|
1880
|
+
0xF44A => 0x7B2B,
|
1881
|
+
0xF469 => 0x7B4A,
|
1882
|
+
0xF44B => 0x7B2C,
|
1883
|
+
0xF46A => 0x7B4B,
|
1884
|
+
0xF44C => 0x7B2D,
|
1885
|
+
0xF46B => 0x7B4C,
|
1886
|
+
0xF44D => 0x7B2E,
|
1887
|
+
0xF46C => 0x7B4D,
|
1888
|
+
0xF44E => 0x7B2F,
|
1889
|
+
0xF46D => 0x7B4E,
|
1890
|
+
0xF44F => 0x7B30,
|
1891
|
+
0xF46E => 0x7B4F,
|
1892
|
+
0xF450 => 0x7B31,
|
1893
|
+
0xF46F => 0x7B50,
|
1894
|
+
0xF451 => 0x7B32,
|
1895
|
+
0xF470 => 0x7B51,
|
1896
|
+
0xF452 => 0x7B33,
|
1897
|
+
0xF471 => 0x7B52,
|
1898
|
+
0xF453 => 0x7B34,
|
1899
|
+
0xF472 => 0x7B53,
|
1900
|
+
0xF454 => 0x7B35,
|
1901
|
+
0xF473 => 0x7B54,
|
1902
|
+
0xF455 => 0x7B36,
|
1903
|
+
0xF474 => 0x7B55,
|
1904
|
+
0xF456 => 0x7B37,
|
1905
|
+
0xF475 => 0x7B56,
|
1906
|
+
0xF457 => 0x7B38,
|
1907
|
+
0xF476 => 0x7B57,
|
1908
|
+
0xF458 => 0x7B39,
|
1909
|
+
0xF477 => 0x7B58,
|
1910
|
+
0xF478 => 0x7B59,
|
1911
|
+
0xF479 => 0x7B5A,
|
1912
|
+
0xF47A => 0x7B5B,
|
1913
|
+
0xF47B => 0x7B5C,
|
1914
|
+
0xF47C => 0x7B5D,
|
1915
|
+
0xF47D => 0x7B5E,
|
1916
|
+
0xF47E => 0x7B5F,
|
1917
|
+
0xF480 => 0x7B60,
|
1918
|
+
0xF481 => 0x7B61,
|
1919
|
+
0xF482 => 0x7B62,
|
1920
|
+
0xF483 => 0x7B63,
|
1921
|
+
0xF484 => 0x7B64,
|
1922
|
+
0xF485 => 0x7B65,
|
1923
|
+
0xF486 => 0x7B66,
|
1924
|
+
0xF487 => 0x7B67,
|
1925
|
+
0xF488 => 0x7B68,
|
1926
|
+
0xF489 => 0x7B69,
|
1927
|
+
0xF48A => 0x7B6A,
|
1928
|
+
0xF48B => 0x7B6B,
|
1929
|
+
0xF48C => 0x7B6C,
|
1930
|
+
0xF48D => 0x7B6D
|
1931
|
+
}
|