package mobile; ;## ------------------------------------------------------------------- ;## 絵文字変換ツール Ver1.4 ;## Copyright (C) Tor World ;## E-MAIL: webmaster@torworld.com ;## WWW: http://www.torworld.com/ ;## ;## ---[注意事項]------------------------------------------------------ ;## このスクリプトの利用には利用規定に同意が必要です。 ;##  http://download.torworld.com/rules.html ;## ;## 2003/10/19 Ver1.0  初版公開 ;## 2003/11/20 Ver1.01 EzWebにおける絵文字画像表示における不具合を修正 ;## 2006/04/21 Ver1.1  EzWeb絵文字の入力に対応 ;## 2006/08/06 Ver1.2  EzWeb絵文字のSHIFT-JISでの出力に対応 ;## 2008/03/08 Ver1.3  絵文字を [ ] で入力可能とした ;## 2008/03/27 Ver1.4  メール用の絵文字変換に対応 ;# 絵文字を除去 ;# $word = &emo2no($word); # すべて ;# $word = &i2no($word); # DoCoMo ;# $word = &j2no($word); # SoftBank ;# $word = &e2no($word); # EzWeb ;# 絵文字を〓に変換 ;# $word = &emo2mark($word); # すべて ;# $word = &i2mark($word); # DoCoMo ;# $word = &j2mark($word); # SoftBank ;# $word = &e2mark($word); # EzWeb ;# 絵文字を画像で出力 ;# $word = &emo2gif($word,$img_dir,$size); # すべて ;# $word = &igif($word,$img_dir,$size); # i-Mode ;# $word = &j2gif($word,$img_dir,$size); # SoftBank ;# $word = &e2gif($word,$img_dir,$size); # EzWeb ;# 絵文字を独自フォーマット化する ;# $word = &emoji($word); ;# 独自フォーマット化された絵文字を復元する ;# $word = &o2o($word); ;# 独自フォーマット化された絵文字を出力(自動変換) ;# $word = &o2($word,$img_dir,$mobile,$size); # すべて ;# $word = &o2i($word,$img_dir,$mobile,$size); # DoCoMo絵文字 ;# $word = &o2j($word,$img_dir,$mobile,$size); # SoftBank絵文字 ;# $word = &o2e($word,$img_dir,$mobile,$size); # EzWeb絵文字 ;# 絵文字の存在をチェック ;# (存在する数を返す = 存在しなければ 0 を返す) ;# $check = &emocheck($word); # すべて ;# $icheck = &icheck($word); # i-Mode絵文字 ;# $jcheck = &jcheck($word); # SoftBank絵文字 ;# アクセス端末の種別を調べる ;# $mobile = &mobile_type; ;# メールアドレスの種別を調べる ;# $mobile = &mailtype($email); ;# 独自フォーマット化した絵文字をメール用に変換 ;# &o2mail($word,$email); ;################################################ ;## --- i-Mode絵文字の変換用配列の読み込み --- ## ;################################################ sub imode2 { ;## i-Mode → SoftBank の変換テーブル %i2j = ( '647','G6a', '648','G69', '649','G6b', '650','G68', '651','E5d', '652','P63', '654','P5c', '655','F5f', '656','F60', '657','F61', '658','F62', '659','F63', '660','F64', '661','F65', '662','F66', '663','F67', '664','F68', '665','F69', '666','F6a', '667','G26', '668','G36', '669','G34', '670','G35', '671','G38', '672','G33', '673','P4a', '674','E52', '676','G3e', '677','P54', '678','G3f', '679','G3b', '680','G3b', '681','E79', '682','F22', '683','G3d', '684','G56', '685','G58', '686','E73', '687','E75', '688','E6d', '689','E74', '690','E78', '691','E76', '692','G5a', '693','E6f', '694','E6e', '695','E71', '696','G63', '697','G65', '698','G64', '699','G67', '700','E40', '701','E5e', '702','O33', '703','G5c', '704','G5d', '705','F56', '706','E44', '707','O2a', '708','Q22', '709','Q23', '711','E45', '712','O2e', '713','F28', '714','G28', '715','O43', '716','E68', '717','O34', '718','E32', '719','O6b', '720','G29', '721','G2a', '722','O21', '723','E4a', '724','E4b', '725','E46', '726','F2c', '727','F2e', '728','F2d', '729','F2f', '730','P39', '731','P3b', '732','G30', '733','G31', '734','G32', '735','F58', '736','F57', '737','Q56', '738','G27', '740','F2a', '809','G6c', '810','G6c', '811','G6c', '813','G72', '814','G6f', '815','G3c', '816','G53', '817','F59', '824','O44', '825','E4f', '826','O21', '827','G5d', '830','E3f', '831','E66', '838','G4d', '855','G6c', '857','O53', '858','E24', '859','E23', '860','G2b', '863','E23', '866','F35', '867','F36', '868','F49', '869','G5f', '870','F55', '873','E34', '874','F32', '875','E6b', '876','F31', '877','F30', '879','F3c', '880','F3d', '881','F3e', '882','F3f', '883','F40', '884','F41', '885','F42', '886','F43', '887','F44', '888','F45', '889','G42', '890','G42', '891','G43', '892','O48', '893','G76', '894','G79', '895','G78', '896','G78', '897','E27', '898','F56', '899','G5e', '900','E43', '901','F26', '902','G23', '903','O4e', '904','E2f', '905','G79', '906','G2d', '907','O31', '908','G5e', '909','F58', '910','E5c', '911','G41', '912','G41', '913','G41', '915','O51', '916','E28', '917','O50', '920','F6d', '923','G26', '924','O43', '925','O3c', '927','G33', '928','O45', '930','E4f', '931','G2c', '934','O21', '935','E2e', '936','G54', '938','E56', '939','O58', '940','G46', '941','P23', '942','P2a', '943','P35', '944','P21', '945','P36', '946','P2e', '947','P38', '948','G2e', '949','P29', '950','P25', '951','P35', '952','P26', '953','P22', '954','P31', '955','P33', '956','P43', '958','F6e', '959','Q57', '960','E35', '961','O35', '963','F6f', '964','F72', '965','P43', '966','F4b', '967','F6d', '968','F4a', '971','E77', '972','P5e', '973','G5b', '974','E30', '976','O24', '978','O65', '979','E30', '980','E38', '981','G50', '982','O62', '983','G66', '984','O2b', '985','O60', '986','O59', '988','Q43', '989','G75', '990','G39', '991','P22', '992','P24', '993','G3a', '994','E2b', '995','G64', '996','P2b'); ;## i-Mode → EzWebの変換テーブル %i2e = ( '647','44', '648','107', '649','95', '650','191', '651','16', '652','190', '653','305', '654','481', '655','192', '656','193', '657','194', '658','195', '659','196', '660','197', '661','198', '662','199', '663','200', '664','201', '665','202', '666','203', '667','218', '668','45', '669','306', '670','220', '671','219', '672','421', '673','307', '674', 222, '675','308', '676','172', '677','341', '678','217', '679','125', '680','125', '681','216', '682','169', '683','168', '684','112', '685','156', '686','375', '687','376', '688','212', '689','205', '690','378', '691','206', '692','213', '693','208', '694','99', '695','207', '696','146', '697','93', '698','52', '699','65', '700', 245, '701','124', '702','104', '703','289', '704','111', '705','70', '706','223', '707','294', '708','309', '709','494', '710','311', '711','106', '712','176', '713','177', '714','94', '715','83', '716','97', '717','312', '718','144', '719','313', '720','85', '721','161', '722','103', '723','288', '724','232', '725','300', '726','51', '727','314', '728','315', '729','316', '730','317', '731','318', '732','281', '733','319', '734','320', '735','43', '736','42', '737','728', '738','729', '739','116', '740','178', '808','321', '809','322', '810','323', '811','15', '812','47', '813','134', '814','251', '815','169', '816','234', '817','71', '824','226', '825','233', '826','508', '827','111', '831','15', '838','46', '846','32', '855','15', '857','61', '858','513', '859','151', '860','166', '863','108', '866','109', '867','299', '868','385', '869','120', '870','118', '872','324', '873','119', '874','334', '875','210', '877','818', '878','4', '879','180', '880','181', '881','182', '882','183', '883','184', '884','185', '885','186', '886','187', '887','188', '888','325', '889','51', '890','328', '891','265', '892','266', '893','257', '894','258', '895','260', '896','259', '897','327', '898','731', '899','343', '900','224', '901','759', '902','273', '903','420', '904','77', '905','262', '906','281', '907','268', '908','343', '909','732', '910','261', '911','2', '912','3', '913','2', '914','329', '915','330', '916','263', '917','282', '919','735', '920','326', '923','335', '924','290', '925','295', '926','805', '927','221', '928','48', '930','233', '931','337', '932','806', '933','152', '934','149', '935','354', '936','72', '937','58', '938','215', '939','423', '940','25', '941','441', '942','446', '943','351', '944','351', '945','779', '946','450', '947','349', '948','287', '949','264', '950','348', '951','786', '952','443', '953','440', '954','259', '955','791', '956','464', '957','143', '958','81', '959','54', '960','218', '961','279', '962','518', '963','82', '964','1', '965','464', '966','387', '967','326', '968','386', '969','808', '970','809', '971','377', '972','810', '973','342', '974','53', '975','241', '976','113', '977','739', '978','434', '979','811', '980','133', '981','235', '982','244', '983','239', '984','400', '985','333', '986','424', '987','812', '988','804', '989','252', '990','203', '991','440', '992','814', '993','248', '994','758', '995','12', '996','350'); } ;################################################## ;## --- SoftBank絵文字の変換用配列の読み込み --- ## ;################################################## sub jsky2 { ;## SoftBank / i-Mode の変換テーブル %j2i = ( 'G23','902', 'G26','923', 'G27','738', 'G28','714', 'G29','720', 'G2a','721', 'G2b','860', 'G2d','906', 'G2e','948', 'G30','732', 'G31','733', 'G32','734', 'G33','672', 'G34','669', 'G35','670', 'G36','668', 'G38','671', 'G39','990', 'G3a','993', 'G3b','679', 'G2c','931', 'G3c','815', 'G3d','683', 'G3e','676', 'G3f','678', 'G40','912', 'G41','911', 'G42','889', 'G43','891', 'G44','838', 'G45','838', 'G46','838', 'G47','838', 'G48','838', 'G49','838', 'G4a','838', 'G4b','838', 'G4c','838', 'G4d','838', 'G4e','838', 'G4f','838', 'G50','981', 'G51','935', 'G53','816', 'G54','936', 'G55','936', 'G56','684', 'G58','685', 'G5a','692', 'G5b','973', 'G5c','703', 'G5d','704', 'G5e','899', 'G5f','869', 'G63','696', 'G64','698', 'G65','697', 'G66','983', 'G67','699', 'G68','650', 'G69','648', 'G6a','647', 'G6b','649', 'G6c','811', 'G6d','647', 'G6f','814', 'G72','813', 'G75','989', 'G76','893', 'G77','893', 'G78','895', 'G79','894', 'G7a','907', 'E21','859', 'E22','859', 'E23','859', 'E24','858', 'E25','949', 'E26','947', 'E27','897', 'E28','944', 'E2b','994', 'E2e','935', 'E2f','904', 'E30','974', 'E31','902', 'E32','718', 'E34','873', 'E35','960', 'E37','907', 'E38','980', 'E3e','715', 'E3f','830', 'E40','700', 'E43','900', 'E44','706', 'E45','711', 'E46','725', 'E47','725', 'E4a','723', 'E4b','724', 'E4f','930', 'E52','674', 'E54','993', 'E55','815', 'E56','938', 'E58','695', 'E59','695', 'E5c','910', 'E5d','651', 'E5e','701', 'E5f','900', 'E60','695', 'E64','869', 'E65','869', 'E66','831', 'E68','716', 'E6d','688', 'E6e','694', 'E6f','693', 'E71','695', 'E73','686', 'E74','689', 'E75','687', 'E76','691', 'E77','971', 'E78','690', 'E79','681', 'E7a','679', 'F21','960', 'F22','682', 'F24','901', 'F25','901', 'F26','901', 'F28','713', 'F2a','740', 'F2c','726', 'F2e','727', 'F2d','728', 'F2f','729', 'F30','877', 'F31','876', 'F32','874', 'F35','866', 'F36','867', 'F39','812', 'F3a','901', 'F3b','901', 'F3c','879', 'F3d','880', 'F3e','881', 'F3f','882', 'F40','883', 'F41','884', 'F42','885', 'F43','886', 'F44','887', 'F45','888', 'F49','868', 'F4a','968', 'F4b','966', 'F56','705', 'F57','736', 'F58','735', 'F59','817', 'F5f','655', 'F60','656', 'F61','657', 'F62','658', 'F63','659', 'F64','660', 'F65','661', 'F66','662', 'F67','663', 'F68','664', 'F69','665', 'F6a','666', 'F6c','870', 'F6d','920', 'F6e','958', 'F6f','963', 'F72','964', 'F76','859', 'F77','859', 'O21','722', 'O24','976', 'O29','695', 'O2a','707', 'O2b','984', 'O2c','699', 'O2e','712', 'O31','907', 'O33','702', 'O34','717', 'O35','961', 'O3a','701', 'O3c','925', 'O3f','702', 'O40','702', 'O42','667', 'O43','715', 'O44','824', 'O45','928', 'O46','908', 'O47','890', 'O48','892', 'O49','890', 'O4a','889', 'O4b','889', 'O4c','889', 'O4d','889', 'O4e','903', 'O4f','903', 'O50','917', 'O51','915', 'O52','812', 'O53','857', 'O54','905', 'O55','903', 'O56','912', 'O57','911', 'O58','939', 'O59','986', 'O60','985', 'O62','982', 'O65','978', 'O6b','719', 'P21','944', 'P22','953', 'P23','941', 'P24','992', 'P25','950', 'P26','952', 'P27','897', 'P28','910', 'P29','949', 'P2a','942', 'P2b','996', 'P2e','946', 'P2f','952', 'P30','897', 'P31','954', 'P32','954', 'P33','955', 'P34','893', 'P35','951', 'P36','945', 'P37','902', 'P38','902', 'P39','730', 'P3b','731', 'P3c','902', 'P3e','734', 'P40','920', 'P42','734', 'P43','956', 'P44','920', 'P47','734', 'P4a','673', 'P4d','667', 'P4e','680', 'P54','677', 'P55','678', 'P5c','654', 'P5e','972', 'P63','652', 'P69','647', 'P6a','647', 'Q21','690', 'Q22','708', 'Q23','709', 'Q27','704', 'Q41','988', 'Q43','988', 'Q4a','813', 'Q56','737', 'Q57','959'); ;## SoftBank / EzWeb の変換テーブル %j2e = ( 'E21','129', 'E22','129', 'E23','784', 'E24','513', 'E25','264', 'E26','349', 'E27','447', 'E28','351', 'E29','249', 'E2a','352', 'E2b','254', 'E2c','274', 'E2d','353', 'E2e','354', 'E2f','77', 'E30','53', 'E31','355', 'E32','144', 'E33','296', 'E34','119', 'E35','218', 'E36','356', 'E37','76', 'E38','133', 'E39','358', 'E3a','277', 'E3b','236', 'E3c','286', 'E3d','269', 'E3e','359', 'E40','245', 'E41','360', 'E42','361', 'E43','224', 'E44','223', 'E45','106', 'E46','300', 'E47','300', 'E48','338', 'E49','115', 'E4a','288', 'E4b','274', 'E4d','362', 'E4e','363', 'E4f','233', 'E50','231', 'E51','364', 'E52','222', 'E53','229', 'E54','248', 'E55','379', 'E56','215', 'E57','368', 'E58','207', 'E59','207', 'E5a','710', 'E5b','304', 'E5c','261', 'E5d','16', 'E5e','124', 'E5f','369', 'E60','207', 'E61','13', 'E62','13', 'E63','370', 'E64','138', 'E65','138', 'E66','227', 'E67','240', 'E68','122', 'E6a','373', 'E6b','210', 'E6c','271', 'E6d','212', 'E6e','99', 'E6f','208', 'E70','209', 'E71','207', 'E72','478', 'E73','375', 'E74','205', 'E75','376', 'E76','206', 'E77','377', 'E78','378', 'E79','216', 'E7a','125', 'F21','800', 'F22','379', 'F23','512', 'F24','51', 'F25','759', 'F26','759', 'F27','380', 'F28','177', 'F29','179', 'F2a','178', 'F2b','381', 'F2c','51', 'F2d','315', 'F2e','314', 'F2f','316', 'F30','818', 'F32','334', 'F33','303', 'F34','382', 'F35','109', 'F36','299', 'F39','41', 'F3a','38', 'F3b','39', 'F3c','180', 'F3d','181', 'F3e','182', 'F3f','183', 'F40','184', 'F41','185', 'F42','186', 'F43','187', 'F44','188', 'F45','325', 'F46','285', 'F47','383', 'F48','384', 'F49','385', 'F4a','386', 'F4b','387', 'F4c','388', 'F4d','389', 'F4e','390', 'F4f','391', 'F50','140', 'F51','141', 'F52','29', 'F53','30', 'F54','63', 'F55','64', 'F56','70', 'F57','42', 'F58','43', 'F59','71', 'F5a','6', 'F5b','5', 'F5c','8', 'F5d','7', 'F5e','392', 'F5f','192', 'F60','193', 'F61','194', 'F62','195', 'F63','196', 'F64','197', 'F65','198', 'F66','199', 'F67','200', 'F68','201', 'F69','202', 'F6a','203', 'F6b','204', 'F6c','118', 'F6d','326', 'F6e','81', 'F6f','82', 'F70','393', 'F71','394', 'F72','1', 'F75','332', 'F76','151', 'F77','151', 'G21','80', 'G22','50', 'G23','273', 'G24','80', 'G25','50', 'G26','335', 'G27','336', 'G28','94', 'G29','85', 'G2a','161', 'G2b','166', 'G2c','337', 'G2d','281', 'G2e','287', 'G2f','284', 'G30','281', 'G31','319', 'G32','320', 'G33','421', 'G34','306', 'G35','220', 'G36','45', 'G37','751', 'G38','219', 'G39','752', 'G3a','248', 'G3b','125', 'G3c','169', 'G3d','168', 'G3e','172', 'G3f','217', 'G40','3', 'G41','2', 'G42','51', 'G43','265', 'G44','46', 'G45','46', 'G46','46', 'G47','46', 'G48','46', 'G49','46', 'G4a','46', 'G4b','46', 'G4c','46', 'G4d','46', 'G4e','46', 'G4f','46', 'G50','235', 'G51','354', 'G52','339', 'G53','234', 'G54','72', 'G55','72', 'G56','112', 'G57','340', 'G58','156', 'G59','795', 'G5a','213', 'G5b','342', 'G5c','289', 'G5d','111', 'G5e','343', 'G5f','120', 'G60','469', 'G61','292', 'G62','469', 'G63','146', 'G64','12', 'G65','93', 'G66','239', 'G67','65', 'G68','191', 'G69','107', 'G6a','44', 'G6b','95', 'G6c','15', 'G6d','167', 'G6e','344', 'G6f','251', 'G70','345', 'G71','346', 'G72','134', 'G73','347', 'G74','246', 'G75','252', 'G76','257', 'G77','257', 'G78','259', 'G79','258', 'G7a','283', 'O21','395', 'O22','396', 'O23','397', 'O24','113', 'O25','256', 'O26','398', 'O27','255', 'O28','399', 'O29','207', 'O2a','294', 'O2b','400', 'O2c','401', 'O2d','402', 'O2e','176', 'O2f','403', 'O30','404', 'O31','268', 'O32','405', 'O33','104', 'O34','312', 'O35','279', 'O36','126', 'O37','13', 'O38','407', 'O39','793', 'O3a','124', 'O3b','408', 'O3c','295', 'O3d','409', 'O3e','297', 'O3f','410', 'O40','411', 'O41','412', 'O42','413', 'O43','83', 'O44','226', 'O45','48', 'O46','453', 'O47','415', 'O48','803', 'O49','272', 'O4a','416', 'O4b','417', 'O4c','418', 'O4d','419', 'O4e','420', 'O4f','69', 'O50','282', 'O51','330', 'O52','422', 'O53','61', 'O54','262', 'O55','69', 'O56','3', 'O57','2', 'O58','423', 'O59','424', 'O5a','425', 'O5b','426', 'O5c','427', 'O5d','428', 'O5e','429', 'O5f','430', 'O60','333', 'O61','431', 'O62','244', 'O63','432', 'O64','433', 'O65','434', 'O66','435', 'O67','243', 'O68','238', 'O69','436', 'O6a','437', 'O6b','313', 'O6c','438', 'O6d','439', 'P21','351', 'P22','440', 'P23','441', 'P24','442', 'P25','348', 'P26','260', 'P27','444', 'P28','445', 'P29','264', 'P2a','446', 'P2b','447', 'P2c','448', 'P2d','449', 'P2e','450', 'P2f','447', 'P30','451', 'P31','259', 'P32','786', 'P33','791', 'P34','454', 'P35','454', 'P36','779', 'P37','455', 'P38','456', 'P39','317', 'P3a','457', 'P3b','318', 'P3c','458', 'P3d','459', 'P3e','463', 'P3f','460', 'P40','461', 'P41','462', 'P42','463', 'P43','464', 'P44','465', 'P45','467', 'P46','466', 'P47','820', 'P48','467', 'P49','468', 'P4a','307', 'P4b','96', 'P4c','470', 'P4d','471', 'P4e','125', 'P4f','148', 'P50','472', 'P51','473', 'P52','474', 'P53','475', 'P54','341', 'P55','217', 'P56','476', 'P57','770', 'P58','477', 'P59','478', 'P5a','479', 'P5b','480', 'P5c','481', 'P5d','340', 'P5e','810', 'P5f','483', 'P60','484', 'P61','485', 'P62','486', 'P63','190', 'P65','487', 'P66','488', 'P67','358', 'P68','489', 'P69','493', 'P6a','371', 'P6b','490', 'P6c','491', 'Q21','492', 'Q22','309', 'Q23','494', 'Q24','495', 'Q25','496', 'Q26','497', 'Q27','110', 'Q28','498', 'Q29','228', 'Q2a','353', 'Q2b','237', 'Q2c','90', 'Q2d','499', 'Q2e','700', 'Q2f','701', 'Q30','702', 'Q31','366', 'Q32','367', 'Q33','703', 'Q34','704', 'Q35','705', 'Q36','706', 'Q37','707', 'Q38','708', 'Q39','709', 'Q3a','710', 'Q3b','711', 'Q3c','712', 'Q3e','374', 'Q3f','714', 'Q40','713', 'Q41','78', 'Q42','715', 'Q43','804', 'Q45','716', 'Q46','717', 'Q47','718', 'Q48','249', 'Q49','192', 'Q4a','134', 'Q4b','719', 'Q4c','247', 'Q4d','720', 'Q4e','721', 'Q4f','722', 'Q50','723', 'Q51','250', 'Q52','724', 'Q53','725', 'Q54','727', 'Q55','726', 'Q56','728', 'Q57','54'); } sub ezweb2 { ;## EzWeb / i-Mode の変換テーブル %e2i = ( '1','964', '2','911', '3','912', '4','878', '11','861', '12','995', '14','930', '15','811', '16','651', '25','940', '32','846', '42','736', '43','735', '44','647', '45','668', '46','838', '47','812', '48','928', '51','889', '52','698', '53','974', '54','959', '55','857', '56','722', '57','937', '58','937', '60','901', '61','857', '62','857', '65','699', '68','893', '69','903', '70','705', '71','817', '72','936', '74','813', '75','903', '76','914', '77','904', '78','988', '81','958', '82','963', '83','715', '85','720', '89','846', '91','722', '92','722', '93','697', '94','714', '95','649', '97','716', '98','965', '99','694', '100','716', '101','716', '102','716', '103','722', '104','702', '106','711', '107','648', '108','863', '109','866', '110','704', '111','704', '112','684', '113','976', '116','739', '118','870', '119','873', '120','869', '121','716', '122','716', '123','933', '124','701', '125','679', '129','859', '133','980', '134','813', '138','869', '139','930', '142','722', '143','957', '144','718', '146','696', '147','716', '148','680', '149','934', '151','859', '152','933', '155','720', '156','685', '161','721', '165','718', '166','860', '167','647', '168','683', '169','815', '169','682', '171','722', '172','676', '176','712', '177','713', '178','740', '180','879', '181','880', '182','881', '183','882', '184','883', '185','884', '186','885', '187','886', '188','887', '190','652', '191','650', '192','655', '193','656', '194','657', '195','658', '196','659', '197','660', '198','661', '199','662', '200','663', '201','664', '202','665', '203','990', '203','666', '205','689', '206','691', '207','695', '208','693', '210','875', '212','688', '213','692', '215','938', '216','681', '217','678', '218','667', '218','960', '219','671', '220','670', '221','927', '222','674', '223','706', '224','900', '226','824', '227','831', '232','724', '233','930', '234','816', '235','981', '239','983', '241','975', '242','990', '244','982', '245','700', '248','993', '251','814', '252','989', '254','994', '257','893', '258','894', '259','954', '259','896', '260','895', '261','910', '262','905', '263','916', '264','949', '265','891', '266','892', '267','901', '268','907', '272','889', '273','902', '276','737', '278','652', '279','961', '281','906', '282','917', '284','904', '286','907', '287','948', '288','723', '289','703', '290','924', '291','899', '294','707', '295','925', '299','867', '300','725', '304','687', '305','653', '306','669', '307','673', '308','675', '309','708', '310','709', '311','710', '312','717', '313','719', '314','727', '315','728', '316','729', '317','730', '318','731', '319','733', '320','734', '321','808', '322','809', '323','810', '324','872', '325','888', '326','920', '327','897', '328','890', '329','914', '330','915', '333','985', '334','874', '335','923', '336','738', '337','931', '341','677', '342','973', '343','899', '348','950', '349','947', '350','996', '351','944', '354','935', '355','902', '359','715', '369','900', '372','988', '375','686', '376','687', '377','971', '378','690', '379','815', '385','868', '386','968', '387','966', '395','722', '400','984', '401','699', '408','701', '410','702', '411','702', '413','667', '414','889', '415','890', '416','889', '417','889', '418','889', '419','889', '420','903', '421','672', '422','812', '423','939', '424','986', '434','978', '440','991', '441','941', '442','953', '443','952', '444','896', '445','910', '446','942', '447','996', '450','946', '451','897', '452','954', '453','899', '454','893', '455','902', '456','902', '458','902', '461','920', '462','956', '463','734', '464','956', '465','920', '467','890', '471','667', '481','654', '492','690', '493','647', '494','709', '495','685', '498','685', '501','869', '506','920', '508','826', '509','812', '510','873', '511','870', '513','858', '514','684', '515','863', '516','722', '517','869', '518','962', '715','990', '721','988', '728','737', '729','738', '730','669', '731','898', '732','909', '733','912', '734','913', '735','919', '739','977', '748','995', '752','990', '757','949', '758','994', '759','901', '764','717', '770','889', '775','825', '776','978', '778','897', '779','945', '780','945', '782','902', '783','893', '784','859', '785','951', '786','951', '787','947', '788','897', '789','897', '790','955', '791','955', '792','991', '799','863', '803','892', '804','988', '805','926', '806','932', '807','962', '808','969', '809','970', '810','972', '811','979', '812','987', '813','992', '814','992', '815','863', '817','732', '818','877', '819','734', '820','734', '821','897', '822','894'); ;## EzWeb / SoftBank の変換テーブル %e2j = ( '1','F72', '2','G41', '3','G40', '5','F5b', '6','F5a', '7','F5d', '8','F5c', '12','G64', '13','E61', '14','E4f', '15','G6c', '16','E5d', '23','F39', '24','F39', '25','G46', '28','O4f', '29','F52', '30','F53', '31','P43', '38','F3a', '39','F3b', '40','F39', '41','F39', '42','F57', '43','F58', '44','G6a', '45','G36', '46','G46', '47','G6c', '48','O45', '50','G25', '51','G42', '52','G64', '53','E30', '54','Q57', '55','O53', '56','O21', '61','O53', '62','O53', '63','F54', '64','F55', '65','G67', '68','G76', '69','O4f', '70','F56', '71','F59', '72','G54', '74','G72', '75','P6b', '76','E37', '77','E2f', '78','Q41', '80','G21', '81','F6e', '82','F6f', '83','O43', '85','G29', '90','Q2c', '91','E68', '92','O21', '93','G65', '94','G28', '95','G6b', '96','P4b', '97','E68', '98','P43', '99','E6e', '100','E68', '101','E68', '102','E68', '103','O21', '104','O33', '106','E45', '107','G69', '108','E23', '109','F35', '110','Q27', '111','G5d', '112','G56', '113','O24', '115','E49', '117','F54', '118','F55', '119','E34', '120','G5f', '121','E68', '122','E68', '124','O3a', '125','P4e', '129','E22', '133','E38', '134','Q4a', '138','E64', '139','E4f', '140','F50', '141','F51', '142','O21', '144','E32', '146','G63', '147','E68', '148','P4f', '149','O21', '151','E23', '155','G29', '156','G58', '161','G2a', '165','E32', '166','G2b', '167','G6d', '168','G3d', '169','G3c', '171','E68', '172','G3e', '176','O2e', '177','F28', '178','F2a', '179','F29', '180','F3c', '181','F3d', '182','F3e', '183','F3f', '184','F40', '185','F41', '186','F42', '187','F43', '188','F44', '190','P63', '191','G68', '192','Q49', '192','F5f', '193','F60', '194','F61', '195','F62', '196','F63', '197','F64', '198','F65', '199','F66', '200','F67', '201','F68', '202','F69', '203','F6a', '204','F6b', '205','E74', '206','E76', '207','E71', '208','E6f', '209','E70', '210','E6b', '212','E6d', '213','G5a', '215','E56', '216','E79', '217','P55', '217','G3f', '218','E35', '219','G38', '220','G35', '221','G33', '222','E52', '223','E44', '224','E43', '226','O44', '227','E66', '228','Q29', '229','E53', '231','E50', '232','E4b', '233','E4f', '234','G53', '235','G50', '236','E3b', '237','Q2b', '238','O68', '239','G66', '240','E67', '242','G39', '243','O67', '244','O62', '245','E40', '246','G74', '247','Q4c', '248','G3a', '249','E29', '250','Q51', '251','G6f', '252','G75', '254','E2b', '255','O27', '256','O25', '257','P35', '258','P36', '259','P31', '260','P26', '261','E5c', '262','O54', '263','E28', '264','P29', '265','G43', '266','O48', '267','E37', '268','O31', '269','E3d', '271','E6c', '272','O49', '273','G23', '274','E2c', '276','Q56', '277','E3a', '278','G52', '279','O35', '281','G2d', '282','O50', '283','G7a', '284','G2f', '285','F46', '286','E3c', '287','G2e', '288','E4a', '289','G5c', '290','O43', '291','G5e', '292','G61', '293','G61', '294','O2a', '295','O3c', '296','E33', '297','O3e', '299','F36', '300','E46', '301','O39', '302','E2c', '303','F33', '304','E5b', '306','G34', '307','P4a', '309','Q22', '312','O34', '313','O6b', '314','F2e', '315','F2d', '316','F2f', '317','P39', '318','P3b', '319','G31', '320','G32', '322','G6c', '323','G6c', '325','F45', '326','F6d', '327','P26', '328','O48', '329','E37', '330','O51', '332','F75', '333','O60', '334','F32', '335','G26', '336','G27', '337','G2c', '338','E48', '339','G52', '340','G57', '341','P54', '342','G5b', '343','G5e', '344','G6e', '345','G70', '346','G71', '347','G73', '348','P25', '349','E26', '350','P30', '351','E28', '352','E2a', '353','E2d', '354','E2e', '355','E31', '356','E36', '357','E37', '358','E39', '359','E3e', '360','E41', '361','E42', '362','E4d', '363','E4e', '364','E51', '366','Q31', '367','Q32', '368','E57', '369','E5f', '370','E63', '371','P6a', '372','Q43', '373','E6a', '374','Q3e', '375','E73', '376','E75', '377','E77', '378','E78', '379','F22', '380','F27', '381','F2b', '382','F34', '383','F47', '384','F48', '385','F49', '386','F4a', '387','F4b', '388','F4c', '389','F4d', '390','F4e', '391','F4f', '392','F5e', '393','F70', '394','F71', '395','O21', '396','O22', '397','O23', '398','O26', '399','O28', '400','O2b', '401','O2c', '402','O2d', '403','O2f', '404','O30', '405','O32', '407','O38', '408','O3b', '409','O3d', '410','O3f', '411','O40', '412','O41', '413','O42', '414','G42', '415','O47', '416','O4a', '417','O4b', '418','O4c', '419','O4d', '420','O4e', '421','G33', '422','O52', '423','O58', '424','O59', '425','O5a', '426','O5b', '427','O5c', '428','O5d', '429','O5e', '430','O5f', '431','O61', '432','O63', '433','O64', '434','O65', '435','O66', '436','O69', '437','O6a', '438','O6c', '439','O6d', '440','P22', '441','P23', '442','P24', '443','P26', '444','P27', '445','P28', '446','P2a', '447','P2f', '448','P2c', '449','P2d', '450','P2e', '451','P30', '452','P31', '453','O46', '454','P35', '455','P37', '456','P38', '457','P3a', '458','P3c', '459','P3d', '460','P3f', '461','P40', '462','P41', '463','P42', '464','P43', '465','P44', '466','P46', '467','P45', '468','P49', '469','G62', '470','P4c', '471','P4d', '472','P50', '473','P51', '474','P52', '475','P53', '476','P56', '477','P58', '478','E72', '479','P5a', '480','P5b', '481','P5c', '483','P5f', '484','P60', '485','P61', '486','P62', '487','P65', '488','P66', '489','P68', '490','P6b', '491','P6c', '492','Q21', '493','P69', '494','Q23', '495','Q24', '496','Q25', '497','Q26', '498','Q28', '499','Q2d', '501','E64', '506','E6d', '508','O21', '509','O52', '510','E34', '511','F55', '512','F23', '513','E24', '514','G56', '515','E21', '517','E64', '700','Q2e', '701','Q2f', '702','Q30', '703','Q33', '704','Q34', '705','Q35', '706','Q36', '707','Q37', '708','Q38', '709','Q39', '710','E5a', '710','Q3a', '711','Q3b', '712','Q3c', '713','Q40', '714','Q3f', '715','Q42', '716','Q45', '717','Q46', '718','Q47', '719','Q4b', '720','Q4d', '721','Q4e', '722','Q4f', '723','Q50', '724','Q52', '725','Q53', '726','Q55', '727','Q54', '728','Q56', '729','G27', '730','G34', '731','F56', '732','F58', '733','O56', '734','O57', '748','G64', '750','O46', '751','G37', '752','G39', '757','P29', '758','E2b', '759','F25', '770','G42', '776','O65', '778','P27', '779','P36', '780','P36', '782','P37', '783','P35', '784','E23', '785','P35', '786','P35', '787','E26', '788','P30', '789','P30', '790','P33', '791','P33', '792','P22', '793','O39', '795','G59', '799','E23', '800','F21', '803','O48', '804','Q43', '810','P5e', '813','P24', '814','P24', '815','E23', '817','G30', '818','F30', '819','G32', '820','P47', '821','P30', '822','P36'); } ;################################################## ;## --- EzWeb絵文字の変換用配列の読み込み --- ## ;################################################## sub e2od { ;## EzWeb絵文字(Shift-JIS / 絵文字番号) %ezweb =( 'f659','1', 'f65a','2', 'f65b','3', 'f748','4', 'f749','5', 'f74a','6', 'f74b','7', 'f74c','8', 'f74d','9', 'f74e','10', 'f74f','11', 'f69a','12', 'f6ea','13', 'f796','14', 'f65e','15', 'f65f','16', 'f750','17', 'f751','18', 'f752','19', 'f753','20', 'f754','21', 'f755','22', 'f756','23', 'f757','24', 'f797','25', 'f758','26', 'f759','27', 'f75a','28', 'f75b','29', 'f75c','30', 'f75d','31', 'f75e','32', 'f75f','33', 'f760','34', 'f761','35', 'f762','36', 'f763','37', 'f764','38', 'f765','39', 'f766','40', 'f767','41', 'f768','42', 'f769','43', 'f660','44', 'f693','45', 'f7b1','46', 'f661','47', 'f6eb','48', 'f77c','49', 'f6d3','50', 'f7b2','51', 'f69b','52', 'f6ec','53', 'f76a','54', 'f76b','55', 'f77d','56', 'f798','57', 'f654','58', 'f77e','59', 'f662','60', 'f76c','61', 'f76d','62', 'f76e','63', 'f76f','64', 'f69c','65', 'f770','66', 'f780','67', 'f6d4','68', 'f663','69', 'f771','70', 'f772','71', 'f6ed','72', 'f773','73', 'f6b8','74', 'f640','75', 'f644','76', 'f64e','77', 'f6b9','78', 'f7ac','79', 'f6d5','80', 'f774','81', 'f775','82', 'f674','83', 'f7ad','84', 'f7b3','85', 'f6d6','86', 'f799','87', 'f776','88', 'f777','89', 'f790','90', 'f675','91', 'f781','92', 'f7b4','93', 'f6ee','94', 'f664','95', 'f694','96', 'f782','97', 'f65c','98', 'f642','99', 'f783','100', 'f784','101', 'f785','102', 'f786','103', 'f6ef','104', 'f787','105', 'f676','106', 'f665','107', 'f6fa','108', 'f79a','109', 'f6f0','110', 'f79b','111', 'f684','112', 'f6bd','113', 'f79c','114', 'f79d','115', 'f6d7','116', 'f778','117', 'f779','118', 'f6f1','119', 'f6f2','120', 'f788','121', 'f677','122', 'f79e','123', 'f6f3','124', 'f68a','125', 'f79f','126', 'f791','127', 'f792','128', 'f6f4','129', 'f7a0','130', 'f789','131', 'f77a','132', 'f6a7','133', 'f6ba','134', 'f7a1','135', 'f77b','136', 'f78a','137', 'f6f5','138', 'f7a2','139', 'f6d8','140', 'f6d9','141', 'f78b','142', 'f678','143', 'f6a8','144', 'f6f6','145', 'f685','146', 'f78c','147', 'f68b','148', 'f679','149', 'f7a3','150', 'f7ae','151', 'f7a4','152', 'f7af','153', 'f7b0','154', 'f6f7','155', 'f686','156', 'f78d','157', 'f67a','158', 'f793','159', 'f69d','160', 'f7a5','161', 'f7a6','162', 'f6da','163', 'f7a7','164', 'f6f8','165', 'f6f9','166', 'f666','167', 'f68c','168', 'f68d','169', 'f6a1','170', 'f7a8','171', 'f68e','172', 'f7a9','173', 'f7aa','174', 'f7ab','175', 'f655','176', 'f656','177', 'f657','178', 'f658','179', 'f6fb','180', 'f6fc','181', 'f740','182', 'f741','183', 'f742','184', 'f743','185', 'f744','186', 'f745','187', 'f746','188', 'f747','189', 'f641','190', 'f65d','191', 'f667','192', 'f668','193', 'f669','194', 'f66a','195', 'f66b','196', 'f66c','197', 'f66d','198', 'f66e','199', 'f66f','200', 'f670','201', 'f671','202', 'f672','203', 'f673','204', 'f67b','205', 'f67c','206', 'f67d','207', 'f67e','208', 'f680','209', 'f681','210', 'f682','211', 'f683','212', 'f78e','213', 'f78f','214', 'f687','215', 'f688','216', 'f689','217', 'f643','218', 'f68f','219', 'f690','220', 'f691','221', 'f692','222', 'f645','223', 'f695','224', 'f696','225', 'f697','226', 'f698','227', 'f699','228', 'f646','229', 'f647','230', 'f69e','231', 'f69f','232', 'f6a0','233', 'f6a2','234', 'f6a3','235', 'f6a4','236', 'f6a5','237', 'f6a6','238', 'f6a9','239', 'f6aa','240', 'f6ab','241', 'f6ac','242', 'f6ad','243', 'f6ae','244', 'f6af','245', 'f648','246', 'f6b0','247', 'f6b1','248', 'f6b2','249', 'f6b3','250', 'f6b4','251', 'f6b5','252', 'f6b6','253', 'f6b7','254', 'f6bb','255', 'f6bc','256', 'f649','257', 'f64a','258', 'f64b','259', 'f64c','260', 'f64d','261', 'f6be','262', 'f6bf','263', 'f6c0','264', 'f64f','265', 'f650','266', 'f651','267', 'f652','268', 'f653','269', 'f6c1','270', 'f6c2','271', 'f6c3','272', 'f6c4','273', 'f6c5','274', 'f6c6','275', 'f6c7','276', 'f6c8','277', 'f6c9','278', 'f6ca','279', 'f6cb','280', 'f6cc','281', 'f6cd','282', 'f6ce','283', 'f6cf','284', 'f6d0','285', 'f6d1','286', 'f6d2','287', 'f6db','288', 'f6dc','289', 'f6dd','290', 'f6de','291', 'f6df','292', 'f6e0','293', 'f6e1','294', 'f6e2','295', 'f6e3','296', 'f6e4','297', 'f794','298', 'f795','299', 'f6e5','300', 'f6e6','301', 'f6e7','302', 'f6e8','303', 'f6e9','304', 'f7b5','305', 'f7b6','306', 'f7b7','307', 'f7b8','308', 'f7b9','309', 'f7ba','310', 'f7bb','311', 'f7bc','312', 'f7bd','313', 'f7be','314', 'f7bf','315', 'f7c0','316', 'f7c1','317', 'f7c2','318', 'f7c3','319', 'f7c4','320', 'f7c5','321', 'f7c6','322', 'f7c7','323', 'f7c8','324', 'f7c9','325', 'f7ca','326', 'f7cb','327', 'f7cc','328', 'f7cd','329', 'f7ce','330', 'f7cf','331', 'f7d0','332', 'f7d1','333', 'f7e5','334', 'f7e6','335', 'f7e7','336', 'f7e8','337', 'f7e9','338', 'f7ea','339', 'f7eb','340', 'f7ec','341', 'f7ed','342', 'f7ee','343', 'f7ef','344', 'f7f0','345', 'f7f1','346', 'f7f2','347', 'f7f3','348', 'f7f4','349', 'f7f5','350', 'f7f6','351', 'f7f7','352', 'f7f8','353', 'f7f9','354', 'f7fa','355', 'f7fb','356', 'f7fc','357', 'f340','358', 'f341','359', 'f342','360', 'f343','361', 'f344','362', 'f345','363', 'f346','364', 'f347','365', 'f348','366', 'f349','367', 'f34a','368', 'f34b','369', 'f34c','370', 'f34d','371', 'f34e','372', 'f34f','373', 'f350','374', 'f351','375', 'f352','376', 'f353','377', 'f354','378', 'f355','379', 'f356','380', 'f357','381', 'f358','382', 'f359','383', 'f35a','384', 'f35b','385', 'f35c','386', 'f35d','387', 'f35e','388', 'f35f','389', 'f360','390', 'f361','391', 'f362','392', 'f363','393', 'f364','394', 'f365','395', 'f366','396', 'f367','397', 'f368','398', 'f369','399', 'f36a','400', 'f36b','401', 'f36c','402', 'f36d','403', 'f36e','404', 'f36f','405', 'f370','406', 'f371','407', 'f372','408', 'f373','409', 'f374','410', 'f375','411', 'f376','412', 'f377','413', 'f378','414', 'f379','415', 'f37a','416', 'f37b','417', 'f37c','418', 'f37d','419', 'f37e','420', 'f380','421', 'f381','422', 'f382','423', 'f383','424', 'f384','425', 'f385','426', 'f386','427', 'f387','428', 'f388','429', 'f389','430', 'f38a','431', 'f38b','432', 'f38c','433', 'f38d','434', 'f38e','435', 'f38f','436', 'f390','437', 'f391','438', 'f392','439', 'f393','440', 'f394','441', 'f395','442', 'f396','443', 'f397','444', 'f398','445', 'f399','446', 'f39a','447', 'f39b','448', 'f39c','449', 'f39d','450', 'f39e','451', 'f39f','452', 'f3a0','453', 'f3a1','454', 'f3a2','455', 'f3a3','456', 'f3a4','457', 'f3a5','458', 'f3a6','459', 'f3a7','460', 'f3a8','461', 'f3a9','462', 'f3aa','463', 'f3ab','464', 'f3ac','465', 'f3ad','466', 'f3ae','467', 'f3af','468', 'f3b0','469', 'f3b1','470', 'f3b2','471', 'f3b3','472', 'f3b4','473', 'f3b5','474', 'f3b6','475', 'f3b7','476', 'f3b8','477', 'f3b9','478', 'f3ba','479', 'f3bb','480', 'f3bc','481', 'f3bd','482', 'f3be','483', 'f3bf','484', 'f3c0','485', 'f3c1','486', 'f3c2','487', 'f3c3','488', 'f3c4','489', 'f3c5','490', 'f3c6','491', 'f3c7','492', 'f3c8','493', 'f3c9','494', 'f3ca','495', 'f3cb','496', 'f3cc','497', 'f3cd','498', 'f3ce','499', 'f7d2','500', 'f7d3','501', 'f7d4','502', 'f7d5','503', 'f7d6','504', 'f7d7','505', 'f7d8','506', 'f7d9','507', 'f7da','508', 'f7db','509', 'f7dc','510', 'f7dd','511', 'f7de','512', 'f7df','513', 'f7e0','514', 'f7e1','515', 'f7e2','516', 'f7e3','517', 'f7e4','518', 'f3cf','700', 'f3d0','701', 'f3d1','702', 'f3d2','703', 'f3d3','704', 'f3d4','705', 'f3d5','706', 'f3d6','707', 'f3d7','708', 'f3d8','709', 'f3d9','710', 'f3da','711', 'f3db','712', 'f3dc','713', 'f3dd','714', 'f3de','715', 'f3df','716', 'f3e0','717', 'f3e1','718', 'f3e2','719', 'f3e3','720', 'f3e4','721', 'f3e5','722', 'f3e6','723', 'f3e7','724', 'f3e8','725', 'f3e9','726', 'f3ea','727', 'f3eb','728', 'f3ec','729', 'f3ed','730', 'f3ee','731', 'f3ef','732', 'f3f0','733', 'f3f1','734', 'f3f2','735', 'f3f3','736', 'f3f4','737', 'f3f5','738', 'f3f6','739', 'f3f7','740', 'f3f8','741', 'f3f9','742', 'f3fa','743', 'f3fb','744', 'f3fc','745', 'f440','746', 'f441','747', 'f442','748', 'f443','749', 'f444','750', 'f445','751', 'f446','752', 'f447','753', 'f448','754', 'f449','755', 'f44a','756', 'f44b','757', 'f44c','758', 'f44d','759', 'f44e','760', 'f44f','761', 'f450','762', 'f451','763', 'f452','764', 'f453','765', 'f454','766', 'f455','767', 'f456','768', 'f457','769', 'f458','770', 'f459','771', 'f45a','772', 'f45b','773', 'f45c','774', 'f45d','775', 'f45e','776', 'f45f','777', 'f460','778', 'f461','779', 'f462','780', 'f463','781', 'f464','782', 'f465','783', 'f466','784', 'f467','785', 'f468','786', 'f469','787', 'f46a','788', 'f46b','789', 'f46c','790', 'f46d','791', 'f46e','792', 'f46f','793', 'f470','794', 'f471','795', 'f472','796', 'f473','797', 'f474','798', 'f475','799', 'f476','800', 'f477','801', 'f478','802', 'f479','803', 'f47a','804', 'f47b','805', 'f47c','806', 'f47d','807', 'f47e','808', 'f480','809', 'f481','810', 'f482','811', 'f483','812', 'f484','813', 'f485','814', 'f486','815', 'f487','816', 'f488','817', 'f489','818', 'f48a','819', 'f48b','820', 'f48c','821', 'f48d','822'); } sub o2eshift { ;## EzWeb絵文字(絵文字番号 / Shift-JIS) %ezweb2 =( '1','f659', '2','f65a', '3','f65b', '4','f748', '5','f749', '6','f74a', '7','f74b', '8','f74c', '9','f74d', '10','f74e', '11','f74f', '12','f69a', '13','f6ea', '14','f796', '15','f65e', '16','f65f', '17','f750', '18','f751', '19','f752', '20','f753', '21','f754', '22','f755', '23','f756', '24','f757', '25','f797', '26','f758', '27','f759', '28','f75a', '29','f75b', '30','f75c', '31','f75d', '32','f75e', '33','f75f', '34','f760', '35','f761', '36','f762', '37','f763', '38','f764', '39','f765', '40','f766', '41','f767', '42','f768', '43','f769', '44','f660', '45','f693', '46','f7b1', '47','f661', '48','f6eb', '49','f77c', '50','f6d3', '51','f7b2', '52','f69b', '53','f6ec', '54','f76a', '55','f76b', '56','f77d', '57','f798', '58','f654', '59','f77e', '60','f662', '61','f76c', '62','f76d', '63','f76e', '64','f76f', '65','f69c', '66','f770', '67','f780', '68','f6d4', '69','f663', '70','f771', '71','f772', '72','f6ed', '73','f773', '74','f6b8', '75','f640', '76','f644', '77','f64e', '78','f6b9', '79','f7ac', '80','f6d5', '81','f774', '82','f775', '83','f674', '84','f7ad', '85','f7b3', '86','f6d6', '87','f799', '88','f776', '89','f777', '90','f790', '91','f675', '92','f781', '93','f7b4', '94','f6ee', '95','f664', '96','f694', '97','f782', '98','f65c', '99','f642', '100','f783', '101','f784', '102','f785', '103','f786', '104','f6ef', '105','f787', '106','f676', '107','f665', '108','f6fa', '109','f79a', '110','f6f0', '111','f79b', '112','f684', '113','f6bd', '114','f79c', '115','f79d', '116','f6d7', '117','f778', '118','f779', '119','f6f1', '120','f6f2', '121','f788', '122','f677', '123','f79e', '124','f6f3', '125','f68a', '126','f79f', '127','f791', '128','f792', '129','f6f4', '130','f7a0', '131','f789', '132','f77a', '133','f6a7', '134','f6ba', '135','f7a1', '136','f77b', '137','f78a', '138','f6f5', '139','f7a2', '140','f6d8', '141','f6d9', '142','f78b', '143','f678', '144','f6a8', '145','f6f6', '146','f685', '147','f78c', '148','f68b', '149','f679', '150','f7a3', '151','f7ae', '152','f7a4', '153','f7af', '154','f7b0', '155','f6f7', '156','f686', '157','f78d', '158','f67a', '159','f793', '160','f69d', '161','f7a5', '162','f7a6', '163','f6da', '164','f7a7', '165','f6f8', '166','f6f9', '167','f666', '168','f68c', '169','f68d', '170','f6a1', '171','f7a8', '172','f68e', '173','f7a9', '174','f7aa', '175','f7ab', '176','f655', '177','f656', '178','f657', '179','f658', '180','f6fb', '181','f6fc', '182','f740', '183','f741', '184','f742', '185','f743', '186','f744', '187','f745', '188','f746', '189','f747', '190','f641', '191','f65d', '192','f667', '193','f668', '194','f669', '195','f66a', '196','f66b', '197','f66c', '198','f66d', '199','f66e', '200','f66f', '201','f670', '202','f671', '203','f672', '204','f673', '205','f67b', '206','f67c', '207','f67d', '208','f67e', '209','f680', '210','f681', '211','f682', '212','f683', '213','f78e', '214','f78f', '215','f687', '216','f688', '217','f689', '218','f643', '219','f68f', '220','f690', '221','f691', '222','f692', '223','f645', '224','f695', '225','f696', '226','f697', '227','f698', '228','f699', '229','f646', '230','f647', '231','f69e', '232','f69f', '233','f6a0', '234','f6a2', '235','f6a3', '236','f6a4', '237','f6a5', '238','f6a6', '239','f6a9', '240','f6aa', '241','f6ab', '242','f6ac', '243','f6ad', '244','f6ae', '245','f6af', '246','f648', '247','f6b0', '248','f6b1', '249','f6b2', '250','f6b3', '251','f6b4', '252','f6b5', '253','f6b6', '254','f6b7', '255','f6bb', '256','f6bc', '257','f649', '258','f64a', '259','f64b', '260','f64c', '261','f64d', '262','f6be', '263','f6bf', '264','f6c0', '265','f64f', '266','f650', '267','f651', '268','f652', '269','f653', '270','f6c1', '271','f6c2', '272','f6c3', '273','f6c4', '274','f6c5', '275','f6c6', '276','f6c7', '277','f6c8', '278','f6c9', '279','f6ca', '280','f6cb', '281','f6cc', '282','f6cd', '283','f6ce', '284','f6cf', '285','f6d0', '286','f6d1', '287','f6d2', '288','f6db', '289','f6dc', '290','f6dd', '291','f6de', '292','f6df', '293','f6e0', '294','f6e1', '295','f6e2', '296','f6e3', '297','f6e4', '298','f794', '299','f795', '300','f6e5', '301','f6e6', '302','f6e7', '303','f6e8', '304','f6e9', '305','f7b5', '306','f7b6', '307','f7b7', '308','f7b8', '309','f7b9', '310','f7ba', '311','f7bb', '312','f7bc', '313','f7bd', '314','f7be', '315','f7bf', '316','f7c0', '317','f7c1', '318','f7c2', '319','f7c3', '320','f7c4', '321','f7c5', '322','f7c6', '323','f7c7', '324','f7c8', '325','f7c9', '326','f7ca', '327','f7cb', '328','f7cc', '329','f7cd', '330','f7ce', '331','f7cf', '332','f7d0', '333','f7d1', '334','f7e5', '335','f7e6', '336','f7e7', '337','f7e8', '338','f7e9', '339','f7ea', '340','f7eb', '341','f7ec', '342','f7ed', '343','f7ee', '344','f7ef', '345','f7f0', '346','f7f1', '347','f7f2', '348','f7f3', '349','f7f4', '350','f7f5', '351','f7f6', '352','f7f7', '353','f7f8', '354','f7f9', '355','f7fa', '356','f7fb', '357','f7fc', '358','f340', '359','f341', '360','f342', '361','f343', '362','f344', '363','f345', '364','f346', '365','f347', '366','f348', '367','f349', '368','f34a', '369','f34b', '370','f34c', '371','f34d', '372','f34e', '373','f34f', '374','f350', '375','f351', '376','f352', '377','f353', '378','f354', '379','f355', '380','f356', '381','f357', '382','f358', '383','f359', '384','f35a', '385','f35b', '386','f35c', '387','f35d', '388','f35e', '389','f35f', '390','f360', '391','f361', '392','f362', '393','f363', '394','f364', '395','f365', '396','f366', '397','f367', '398','f368', '399','f369', '400','f36a', '401','f36b', '402','f36c', '403','f36d', '404','f36e', '405','f36f', '406','f370', '407','f371', '408','f372', '409','f373', '410','f374', '411','f375', '412','f376', '413','f377', '414','f378', '415','f379', '416','f37a', '417','f37b', '418','f37c', '419','f37d', '420','f37e', '421','f380', '422','f381', '423','f382', '424','f383', '425','f384', '426','f385', '427','f386', '428','f387', '429','f388', '430','f389', '431','f38a', '432','f38b', '433','f38c', '434','f38d', '435','f38e', '436','f38f', '437','f390', '438','f391', '439','f392', '440','f393', '441','f394', '442','f395', '443','f396', '444','f397', '445','f398', '446','f399', '447','f39a', '448','f39b', '449','f39c', '450','f39d', '451','f39e', '452','f39f', '453','f3a0', '454','f3a1', '455','f3a2', '456','f3a3', '457','f3a4', '458','f3a5', '459','f3a6', '460','f3a7', '461','f3a8', '462','f3a9', '463','f3aa', '464','f3ab', '465','f3ac', '466','f3ad', '467','f3ae', '468','f3af', '469','f3b0', '470','f3b1', '471','f3b2', '472','f3b3', '473','f3b4', '474','f3b5', '475','f3b6', '476','f3b7', '477','f3b8', '478','f3b9', '479','f3ba', '480','f3bb', '481','f3bc', '482','f3bd', '483','f3be', '484','f3bf', '485','f3c0', '486','f3c1', '487','f3c2', '488','f3c3', '489','f3c4', '490','f3c5', '491','f3c6', '492','f3c7', '493','f3c8', '494','f3c9', '495','f3ca', '496','f3cb', '497','f3cc', '498','f3cd', '499','f3ce', '500','f7d2', '501','f7d3', '502','f7d4', '503','f7d5', '504','f7d6', '505','f7d7', '506','f7d8', '507','f7d9', '508','f7da', '509','f7db', '510','f7dc', '511','f7dd', '512','f7de', '513','f7df', '514','f7e0', '515','f7e1', '516','f7e2', '517','f7e3', '518','f7e4', '700','f3cf', '701','f3d0', '702','f3d1', '703','f3d2', '704','f3d3', '705','f3d4', '706','f3d5', '707','f3d6', '708','f3d7', '709','f3d8', '710','f3d9', '711','f3da', '712','f3db', '713','f3dc', '714','f3dd', '715','f3de', '716','f3df', '717','f3e0', '718','f3e1', '719','f3e2', '720','f3e3', '721','f3e4', '722','f3e5', '723','f3e6', '724','f3e7', '725','f3e8', '726','f3e9', '727','f3ea', '728','f3eb', '729','f3ec', '730','f3ed', '731','f3ee', '732','f3ef', '733','f3f0', '734','f3f1', '735','f3f2', '736','f3f3', '737','f3f4', '738','f3f5', '739','f3f6', '740','f3f7', '741','f3f8', '742','f3f9', '743','f3fa', '744','f3fb', '745','f3fc', '746','f440', '747','f441', '748','f442', '749','f443', '750','f444', '751','f445', '752','f446', '753','f447', '754','f448', '755','f449', '756','f44a', '757','f44b', '758','f44c', '759','f44d', '760','f44e', '761','f44f', '762','f450', '763','f451', '764','f452', '765','f453', '766','f454', '767','f455', '768','f456', '769','f457', '770','f458', '771','f459', '772','f45a', '773','f45b', '774','f45c', '775','f45d', '776','f45e', '777','f45f', '778','f460', '779','f461', '780','f462', '781','f463', '782','f464', '783','f465', '784','f466', '785','f467', '786','f468', '787','f469', '788','f46a', '789','f46b', '790','f46c', '791','f46d', '792','f46e', '793','f46f', '794','f470', '795','f471', '796','f472', '797','f473', '798','f474', '799','f475', '800','f476', '801','f477', '802','f478', '803','f479', '804','f47a', '805','f47b', '806','f47c', '807','f47d', '808','f47e', '809','f480', '810','f481', '811','f482', '812','f483', '813','f484', '814','f485', '815','f486', '816','f487', '817','f488', '818','f489', '819','f48a', '820','f48b', '821','f48c', '822','f48d'); } ;################################ ;## --- キャリアの自動判別 --- ## ;################################ sub mobile_type { local ($mobile); if ($ENV{"HTTP_USER_AGENT"} =~ /DoCoMo/i){ $mobile = "imode"; } elsif ($ENV{"HTTP_USER_AGENT"} =~ /L-mode/i){ $mobile = "imode"; } elsif ($ENV{HTTP_X_JPHONE_COLOR} || $ENV{HTTP_X_JPHONE_DISPLAY} || $ENV{HTTP_X_JPHONE_MSNAME} || $ENV{HTTP_X_JPHONE_SOUND} || $ENV{"HTTP_USER_AGENT"} =~ /J\-PHONE/i || $ENV{"HTTP_USER_AGENT"} =~ /Vodafone/i || $ENV{"HTTP_USER_AGENT"} =~ /SoftBank/i) { $mobile = "jsky"; } elsif ($ENV{'HTTP_USER_AGENT'} =~ /^UP\.Browser/i) { $mobile = "tuka"; } elsif ($ENV{'HTTP_USER_AGENT'} =~ /UP\.Browser/i) { $mobile = "ezweb"; } elsif ($ENV{'HTTP_USER_AGENT'} =~ /DDIPOCKET|WILLCOM/i) { $mobile = "willcom"; } else { $mobile = "else"; } return ($mobile); } ;###################################### ;## --- メールアドレスの自動判別 --- ## ;###################################### sub mailtype { local ($email) = @_; local ($mobile); if ($email =~ /\@docomo\.ne\.jp/i) { $mobile = "imode"; } elsif ($email =~ /\@[a-z]?\.(vodafone|softbank)\.ne\.jp/i) { $mobile = "jsky"; } elsif ($email =~ /\@ezweb\.ne\.jp/i) { $$mobile = "ezweb"; } elsif ($email =~ /\@(wm\.)?pdx\.ne\.jp/i) { $mobile = "willcom"; } else { $mobile = "else"; } return $mobile; } ;############################################################ ;## --- 独自フォーマット化された絵文字をメール用に変換 --- ## ;############################################################ sub o2mail { local ($word,$email,$mobile) = @_; if (!($mobile)) { if ($email) { $mobile = &mailtype("$email"); } else { return &o2mark($word); } } if ($word =~ //) { $word = &o2i("$word","","$mobile"); } if ($word =~ //) { $word = &o2j("$word","","$mobile"); } if ($word =~ //) { $word = &o2e("$word","","$mobile"); } return $word; } ;######################################## ;## --- 絵文字の独自フォーマット化 --- ## ;######################################## ;## --- 絵文字を独自フォーマット化する sub emoji { local($word) = @_; $word =~ s/,/,/g; $word = &i2o($word); $word = &j2o($word); $word = &e2o($word); return $word; } ;## --- i-Mode絵文字を独自フォーマット化する sub i2o { local($word) = @_; # --- 16進数で書かれている場合 $sjis = '[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]'; $word =~ s/\G((?:$sjis)*)($emoji)/$1.''/ego; # --- 10進数で書かれている場合 $word =~ s/?(\d{3});//g; $word =~ s/\[i:(\d{3}):i\]//g; return $word; } ;## --- SoftBank絵文字を独自フォーマット化する sub j2o { local($word) = @_; $word =~ s/,/,/g; $word =~ s/\x1B\$([E-GO-Q])([\x21-\x7A]+)\x0F/&j2o2($1,$2)/eg; $word =~ s/\[j:([E-GO-Q])(..):j\]//g; return $word; } sub j2o2 { ($j1,$j2) = @_; $j2 =~ s/([\x21-\x7A])/''/eg; return ($j2); } ;## --- EzWeb絵文字を独自フォーマット化する sub e2o { local($word) = @_; &e2od; # --- 16進数で書かれている場合 $sjis = '[\x81-\x9F\xE0-\xF2\xF5\xF8-\xFC][\x40-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $word =~ s/\G((?:$sjis)*)([\xF3\xF4\xF6\xF7][\x40-\xFC])/$1.&e2o2($2)/eg; # --- タグで書かれている場合 $word =~ s/</____/ig; $word =~ s/(__)?]*>(__)?//ig; $word =~ s/____/>/ig; $word =~ s/\[e:(\d+):e\]//g; return $word; } sub e2o2 { $ec = unpack('H4',$_[0]); if ($ezweb{$ec}) { $ec = ''; } else { $ec = $_[0]; } return ($ec); } ;################################################## ;## --- 独自フォーマット化された絵文字の表示 --- ## ;################################################## ;## --- 独自フォーマット化された絵文字の復元 sub o2o { &o2eshift; local($word) = @_; $word =~ s//pack('n',$1)/eg; $word =~ s//"\x1B\$".$1.pack('H2',$2)."\x0F"/eg; $word =~ s//pack('H4',$ezweb2{$1})/eg; return $word; } ;## --- 独自フォーマット化された絵文字を〓に置換 sub o2mark { local($word) = @_; $word =~ s//〓/g; $word =~ s//〓/g; $word =~ s//〓/g; return $word; } ;## --- 独自フォーマット化された絵文字を除去 sub o2no { local($word) = @_; $word =~ s///eg; $word =~ s///eg; $word =~ s///g; return $word; } ;## --- 独自フォーマット化された絵文字の表示 sub o2emoji { local($word,$emoji_dir,$mobile,$size) = @_; if (!($mobile)) { $mobile = &mobile_type; } if ($word =~ //) { $word = &o2i("$word","$emoji_dir","$mobile","$size"); } if ($word =~ //) { $word = &o2j("$word","$emoji_dir","$mobile","$size"); } if ($word =~ //) { $word = &o2e("$word","$emoji_dir","$mobile","$size"); } return $word; } ;## --- 独自フォーマット化されたi-Mode絵文字を表示 sub o2i { local($word,$emoji_dir,$mobile,$size) = @_; if ($word =~ //) { if (!($mobile)) { $mobile = &mobile_type; } if ($size) { $size = " width=\"$size\" height=\"$size\""; } if ($mobile eq "imode" || $mobile eq "lmode") { $word =~ s//pack('n',$1)/eg; } elsif ($mobile eq "jsky") { &imode2; $word =~ s//&oi2j($1,$emoji_dir,$size)/eg; } elsif ($mobile eq "tuka") { &imode2; $word =~ s//〓/g; } elsif ($mobile eq "ezweb") { &imode2; &o2eshift; $word =~ s//&oi2e($1,$emoji_dir,$size)/eg; } else { $word =~ s//&oi2p($1,$emoji_dir,$size)/eg; } } return $word; } sub oi2j { local($emo,$emoji_dir,$size)=@_; $emoji=""; $emo2 = $emo-63000; $emoji = $i2j{$emo2}; if ($emoji) { $emoji =~ s/([E-GO-Q])(..)/"\x1B\$".$1.pack('H2',$2)."\x0F"/e; } elsif (-e "$emoji_dir$emo\.png" || $emoji_dir =~ /^http:/i) { $emoji = ""; } else { $emoji = "〓"; } return $emoji; } sub oi2e { local($emo,$emoji_dir,$size)=@_; $emoji = $i2e{$emo}; $emo="63$emo"; if ($emoji) { $emoji = pack('H4',$ezweb2{$emoji}); return "$emoji"; } elsif (-e "$emoji_dir$emo\.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } sub oi2p { local($emo,$emoji_dir,$size) = @_; if (-e "$emoji_dir$emo\.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;## --- 独自フォーマット化されたSoftBank絵文字を表示 sub o2j { local($word,$emoji_dir,$mobile,$size) = @_; if ($word =~ //) { if (!($mobile)) { $mobile = &mobile_type; } if ($size) { $size = " width=\"$size\" height=\"$size\""; } if ($mobile eq "imode" || $mobile eq "lmode") { &jsky2; $word =~ s//&oj2i($1,$emoji_dir,$size)/eg; } elsif ($mobile eq "jsky") { $word =~ s//"\x1B\$".$1.pack('H2',$2)."\x0F"/eg; } elsif ($mobile eq "tuka") { $word =~ s//〓/g; } elsif ($mobile eq "ezweb") { &jsky2; &o2eshift; $word =~ s//&oj2e($1,$emoji_dir,$size)/eg; } else { $word =~ s//&oj2p($1,$emoji_dir,$size)/eg; } } return $word; } sub oj2i { local($emo,$emoji_dir,$size)=@_; local($emoji) = $j2i{$emo}; if ($emoji) { $emoji = pack('n',"63$emoji"); } elsif (-e "$emoji_dir$emo\.gif" || $emoji_dir =~ /^http:/i) { $emoji = ""; } else { $emoji = "〓"; } return $emoji; } sub oj2e { local($emo,$emoji_dir,$size)=@_; $emoji = $j2e{$emo}; if ($emoji) { $emoji = pack('H4',$ezweb2{$emoji}); return "$emoji"; } elsif (-e "$emoji_dir$emo\.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } sub oj2p { local($emo,$emoji_dir,$size) = @_; if (-e "$emoji_dir$emo\.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;## --- 独自フォーマット化されたEzWeb絵文字を表示 sub o2e { local($word,$emoji_dir,$mobile,$size) = @_; if ($word =~ //) { if (!($mobile)) { $mobile = &mobile_type; } if ($size) { $size = " width=\"$size\" height=\"$size\""; } if ($mobile eq "imode" || $mobile eq "lmode") { &ezweb2; $word =~ s//&oe2i($1,$emoji_dir,$size)/eg; } elsif ($mobile eq "jsky") { &ezweb2; $word =~ s//&oe2j($1,$emoji_dir,$size)/eg; } elsif ($mobile eq "tuka") { $word =~ s///g; } elsif ($mobile eq "ezweb") { &o2eshift; $word =~ s//pack('H4',$ezweb2{$1})/eg; } else { $word =~ s//&oe2p($1,$emoji_dir,$size)/eg; } } return $word; } sub oe2i { local($emo,$emoji_dir,$size) = @_; $emoji=""; $emoji = $e2i{$emo}; if ($emoji) { $emoji = pack('n',"63$emoji"); } elsif (-e "$emoji_dir$emo\.gif" || $emoji_dir =~ /^http:/i) { $emoji = ""; } else { $emoji = "〓"; } return $emoji; } sub oe2j { local($emo,$emoji_dir,$size) = @_; $emoji=""; $emoji = $e2j{$emo}; if ($emoji) { $emoji =~ s/([E-GO-Q])(..)/"\x1B\$".$1.pack('H2',$2)."\x0F"/eg; } elsif (-e "$emoji_dir$emo\.png" || $emoji_dir =~ /^http:/i) { $emoji = ""; } else { $emoji = "〓"; } return $emoji; } sub oe2p { local($emo,$emoji_dir,$size) = @_; if (-e "$emoji_dir$emo\.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;############################## ;## --- 絵文字を消去する --- ## ;############################## sub emo2no { local($word) = $_[0]; $word = &i2no($word); $word = &j2no($word); $word = &e2no($word); return $word; } ;# --- i-Mode sub i2no { local($word) = $_[0]; $sjis = '[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]'; $word =~ s/\G((?:$sjis)*)(?:$emoji)/$1/go; $word =~ s/?(\d{3});//g; return $word; } ;# --- SoftBank sub j2no { local($word) = $_[0]; $word =~ s/,/,/g; $word =~ s/\x1B\$[\x21-\x7A]+\x0F//g; return $word; } ;# --- EzWeb sub e2no { local($word) = $_[0]; $sjis = '[\x81-\x9F\xE0-\xF2\xF5\xF8-\xFC][\x40-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $word =~ s/\G((?:$sjis)*)([\xF3\xF4\xF6\xF7][\x40-\xFC])/$1/eg; $word =~ s/</____/ig; $word =~ s/(__)?]+>(__)?//ig; $word =~ s/____/>/ig; return $word; } ;################################## ;## --- 絵文字を〓に変換する --- ## ;################################## sub emo2mark { local($word) = $_[0]; $word = &i2mark($word); $word = &j2mark($word); $word = &e2mark($word); return $word; } ;# --- i-Mode sub i2mark { local($word) = $_[0]; $sjis = '[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]'; $word =~ s/\G((?:$sjis)*)($emoji)/$1〓/go; $word =~ s/?(\d{3});/〓/g; return $word; } ;# --- SoftBank sub j2mark { local($word) = $_[0]; $word =~ s/,/,/g; $word =~ s/\x1B\$([E-GO-Q])([\x21-\x7A]+)\x0F/&j2mark2($1,$2)/eg; return $word; } sub j2mark2 { ($j1,$j2) = @_; $j2 =~ s/([\x21-\x7A])/〓/g; return ($j2); } ;# --- EzWeb sub e2mark { local($word) = $_[0]; $sjis = '[\x81-\x9F\xE0-\xF2\xF5\xF8-\xFC][\x40-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $word =~ s/\G((?:$sjis)*)([\xF3\xF4\xF6\xF7][\x40-\xFC])/$1〓/go; $word =~ s/</____/ig; $word =~ s/(__)?]+>(__)?/〓/ig; $word =~ s/____/>/ig; return $word; } ;######################################## ;## --- 絵文字の存在をチェックする --- ## ;######################################## sub emocheck { local($word) = $_[0]; $flag2 = &icheck($word) + &jcheck($word) + &echeck($word); if ($flag2) { return (1); } else { return (0);} } sub icheck { local($word) = $_[0]; $flag=0; $sjis = '[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]'; if ($word =~ /\G((?:$sjis)*)(?:$emoji)|?(\d{3});/) { $flag=1; } return $flag; } sub jcheck { local($word) = $_[0]; $flag=0; $word =~ s/,/,/g; if ($word =~ /\x1B\$([E-GO-Q])([\x21-\x7A]+)\x0F/) { $flag=1; } return $flag; } sub echeck { local($word) = $_[0]; $flag=0; $sjis = '[\x81-\x9F\xE0-\xF2\xF5\xF8-\xFC][\x40-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; if ($word =~ /\G((?:$sjis)*)([\xF3\xF4\xF6\xF7][\x40-\xFC])/) { $flag=1; } if ($word =~ /(<|<)img (icon|localsrc)/i) { $flag=1; } return $flag; } ;################################## ;## --- 絵文字を自動変換する --- ## ;################################## ;## --- 絵文字をGIF画像に変換(絵文字同士は相互置換) sub emo2gif { local($word,$emoji_dir,$mobile,$size) = @_; if (!($mobile)) { $mobile = &mobile_type; } if ($size) { $size = " width=\"$size\" height=\"$size\""; } $word =~ s/,/,/g; if ($mobile eq "imode") { # SoftBank ⇒ i-Mode &jsky2; $word =~ s/\x1B\$([E-GO-Q])([\x21-\x7A]+)\x0F/&j2igif($1,$2,$emoji_dir,$size)/eg; # EzWeb ⇒ i-Mode &e2od; &ezweb2; $sjis = '[\x81-\x9F\xE0-\xF2\xF5\xF8-\xFC][\x40-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $word =~ s/\G((?:$sjis)*)([\xF3\xF4\xF6\xF7][\x40-\xFC])/$1.&e2igif($2,0,$emoji_dir,$size)/eg; $word =~ s/</____/ig; $word =~ s/(__)?<(IMG ICON|img localsrc)="?([0-9]+)"?( \/)?>(__)?/&e2igif(0,$3,$emoji_dir,$size)/eg; $word =~ s/____/>/ig; } elsif ($mobile eq "jsky") { #i-Mode ⇒ SoftBank &imode2; $sjis = '[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]'; $word =~ s/\G((?:$sjis)*)($emoji)/$1.&i2jgif($2,0,$emoji_dir,$size)/ego; $word =~ s/&#(63)(\d{3});/&i2jgif(0,$2,$emoji_dir,$size)/eg; # EzWeb ⇒ SoftBank &e2od; &ezweb2; $sjis = '[\x81-\x9F\xE0-\xF2\xF5\xF8-\xFC][\x40-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $word =~ s/\G((?:$sjis)*)([\xF3\xF4\xF6\xF7][\x40-\xFC])/$1.&e2jgif($2,0,$emoji_dir,$size)/eg; $word =~ s/</____/ig; $word =~ s/(__)?<(IMG ICON|img localsrc)="?([0-9]+)"?( \/)?>(__)?/&e2jgif(0,$3,$emoji_dir,$size)/eg; $word =~ s/____/>/ig; } elsif ($mobile eq "tuka") { $word = &i2mark($word); $word = &j2mark($word); $word = &e2o($word); $word = &o2e($word); } elsif ($mobile eq "ezweb") { &o2eshift; &imode2; $sjis = '[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]'; $word =~ s/\G((?:$sjis)*)($emoji)/$1.&i2egif($2,$emoji_dir,$size)/ego; &jsky2; $word =~ s/\x1B\$([E-GO-Q])([\x21-\x7A]+)\x0F/&j2egif($1,$2,$emoji_dir,$size)/eg; } else { $sjis = '[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]'; $word =~ s/\G((?:$sjis)*)($emoji)/$1.''/ego; $word =~ s/&#(63)(\d{3});//g; $word =~ s/\x1B\$([E-GO-Q])([\x21-\x7A]+)\x0F/&j2gif($1,$2,$emoji_dir,$size)/eg; $word = &e2gif($word,$emoji_dir,$size,gif); } return $word; } ;## --- SoftBank絵文字をi-Mode用に変換 sub j2igif { local($j1,$j2,$emoji_dir,$size) = @_; $j2 =~ s/([\x21-\x7A])/&j2igif2("$j1","$1","$emoji_dir","$size")/eg; return $j2; } sub j2igif2 { local($j1,$j2,$emoji_dir,$size) = @_; $j2 = unpack('H2',$j2); $j3="$j1$j2"; $emoji = $j2i{$j3}; if ($emoji) { $j2 = pack('n',"63$emoji"); return $j2; } elsif (-e "$emoji_dir$j1$j2.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;## --- EzWeb絵文字をi-Mode用に変換 sub e2igif { local($e1,$e2,$emoji_dir,$size) = @_; if ($e1) { $e1 = unpack('H4',$e1); $e2 = $ezweb{$e1}; } if ($e2i{$e2}) { $e3 = pack('n',"63$e2i{$e2}"); return $e3; } elsif (-e "$emoji_dir$e2.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;## --- i-Mode絵文字をSoftBank用に変換 sub i2jgif { local($i1,$i2,$emoji_dir,$size) = @_; if ($i1) { $i3=unpack('n',$i1); $i2=$i3-63000; } $j = $i2j{$i2}; if ($j) { $j =~ s/([E-GO-Q])(..)/"\x1B\$".$1.pack('H2',$2)."\x0F"/e; return $j; } elsif (-e "$emoji_dir$i3\.png" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;## --- EzWeb絵文字をSoftBank用に変換 sub e2jgif { local($e1,$e2,$emoji_dir,$size) = @_; if ($e1) { $e1 = unpack('H4',$e1); $e2 = $ezweb{$e1}; } $j = $e2j{$e2}; if ($j) { $j =~ s/([E-GO-Q])(..)/"\x1B\$".$1.pack('H2',$2)."\x0F"/e; return $j; } elsif (-e "$emoji_dir$e2\.png" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;## --- i-Mode絵文字をEzWeb用に変換 sub i2egif { local($i,$emoji_dir,$size) = @_; $i2=unpack('n',$i); $i3=$i2-63000; $e=$i2e{$i3}; if ($e) { $e = pack('H4',$ezweb2{$e}); return "$e"; } elsif (-e "$emoji_dir$i2.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;## --- SoftBank絵文字をEzWeb用に変換 sub j2egif { local($j1,$j2,$emoji_dir,$size) = @_; $j2 =~ s/([\x21-\x7A])/&j2egif2("$j1","$1","$emoji_dir","$size")/eg; return $j2; } sub j2egif2 { local($j1,$j2,$emoji_dir,$size) = @_; $j2 = unpack('H2',$j2); $j3="$j1$j2"; $emoji = $j2e{$j3}; if ($emoji) { $emoji = pack('H4',$ezweb2{$emoji}); return "$emoji"; } elsif (-e "$emoji_dir$j1$j2.gif" || $emoji_dir =~ /^http:/i) { return ""; } else { return "〓"; } } ;## --- SoftBank絵文字をGIF画像に変換 sub j2gif { local($j1,$j2,$emoji_dir,$size) = @_; $j2 =~ s/([\x21-\x7A])/''/eg; return $j2; } ;## --- EzWeb絵文字をGIF画像に変換 sub e2gif { local($word,$emoji_dir,$size) = @_; &e2od; $sjis = '[\x81-\x9F\xE0-\xF2\xF5\xF8-\xFC][\x40-\xFC]|[\x00-\x7F]|[\xA1-\xDF]'; $word =~ s/\G((?:$sjis)*)([\xF3\xF4\xF6\xF7][\x40-\xFC])/$1.&e2gif2($2)/eg; $word =~ s/</____/ig; $word =~ s/(__)?<(IMG ICON|img localsrc)="?([a-zA-Z0-9]+)"?( \/)?>(__)?//ig; $word =~ s/____/>/ig; return $word; } sub e2gif2 { $ec = unpack('H4',$_[0]); if ($ezweb{$ec}) { $ec = ""; } else { $ec = $_[0]; } return $ec; } 1;