jpmobile 0.1.6 → 1.0.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
}
|