Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
楽しい文字コード入門 知っておきたいUnicode Emoji編
Search
Shunsuke Tadokoro
September 29, 2016
Programming
14
2.7k
楽しい文字コード入門 知っておきたいUnicode Emoji編
Bizreach Tech Beer Bashでの発表資料です
Shunsuke Tadokoro
September 29, 2016
Tweet
Share
More Decks by Shunsuke Tadokoro
See All by Shunsuke Tadokoro
ある日「Webエンジニアなら、Webサーバーは作れますよね」と言われたら? ~ 3つのJVM言語で作って学ぶ
todokr
2
500
Onboarding Process for Scala Team
todokr
0
1.6k
Running Scala on AWS Lambda in a Snappy Way
todokr
7
4.2k
Scalaでつくる ちょっとしたCLIツール
todokr
0
890
新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure
todokr
28
19k
わかる!Java to Clojure
todokr
6
1.8k
Scala絵文字ライブラリに Macroなどを導入してみた
todokr
0
1.3k
Clojureに入門してHTTPサーバーをつくってみた話
todokr
3
1k
emojiconに行ってきました
todokr
2
700
Other Decks in Programming
See All in Programming
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
570
SQL Server ベクトル検索
odashinsuke
0
110
プログラミング教育のコスパの話
superkinoko
0
120
PsySHから紐解くREPLの仕組み
muno92
PRO
1
520
Develop Faster With FrankenPHP
dunglas
2
2.4k
Day0 初心者向けワークショップ実践!ソフトウェアテストの第一歩
satohiroyuki
0
390
goにおける コネクションプールの仕組み を軽く掘って見た
aronokuyama
0
130
今から始めるCursor / Windsurf / Cline
kengo_hayano
0
110
AHC 044 混合整数計画ソルバー解法
kiri8128
0
300
NestJSのコードからOpenAPIを自動生成する際の最適解を探す
astatsuya
0
180
List とは何か? / PHPerKaigi 2025
meihei3
0
550
Return of the Full-Stack Developer
simas
PRO
1
310
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
610
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
7
610
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
25k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Designing for Performance
lara
606
69k
Transcript
CUCC ฏੜ·Εͷ จࣈίʔυೖ #J[SFBDI5FDI#FFS#BTI !UPEPLS ͓͖͍ͬͯͨ 6OJDPEF&NPKJฤ ָ͍͠ʂ
CUCC
CUCC ୭ͩ
CUCC ాॴ ॣ༎ !UPEPLS ⦁גࣜձࣾϏζϦʔν ελϯόΠࣄۀ෦ αʔνίΞάϧʔϓ ⦁৽ถ4DBMBΤϯδχΞ ⦁8FCΫϩʔϥʔͷ։ൃɾӡ༻ ⦁݄ೖࣾ
৽ଔ ⦁ฏੜ·Ε ࡀ
CUCC ͓͢͠Δ͜ͱ • จࣈίʔυʁ • 6OJDPEF&NPKJͱͦͷྺ࢙ • ࡢࠓͷ&NPKJࣄ • ϓϩάϥϜ͔Βѻ͏
CUCC αʔνίΞάϧʔϓ ٻਓαΠτΫϩʔϥʔͷ։ൃͱӡ༻ ΫϩʔϦϯάͱจࣈίʔυ Ϋϩʔϥʔ ٻਓαΠτ ٻ৬ऀ ΫϩʔϦϯά ΠϯσΩγϯά ٻਓݕࡧ
CUCC Ṗͷ63-Τϯίʔυࣄ݅ • ҬີணܕͷΞϧόΠτٻਓαΠτ • αΠτΛΫϩʔϦϯάதɺ ಥΫϩʔϥʔ͕ྫ֎Λు͍ͯࢮ • αΠτͷϨεϙϯεϔομΛ֬ೝ Content-Type:text/html;
charset=%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89
CUCC Ṗͷ63-Τϯίʔυࣄ݅ • ҬີணܕͷΞϧόΠτٻਓαΠτ • αΠτΛΫϩʔϦϯάதɺ ಥΫϩʔϥʔ͕ྫ֎Λు͍ͯࢮ • αΠτͷϨεϙϯεϔομΛ֬ೝ Content-Type:text/html;
charset=%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89
CUCC Ṗͷ63-Τϯίʔυࣄ݅ • ҬີணܕͷΞϧόΠτٻਓαΠτ • αΠτΛΫϩʔϦϯάதɺ ಥΫϩʔϥʔ͕ྫ֎Λు͍ͯࢮ • αΠτͷϨεϙϯεϔομΛ֬ೝ Content-Type:text/html;
charset=%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89 ʊਓਓਓਓਓʊ ʼ ո͍͠ ʻ ʉ:?:?:?:ʉ
CUCC Ṗͷ63-Τϯίʔυࣄ݅ Content-Type:text/html; charset=%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89 ڪΔڪΔ63-σίʔυ DIBSTFUจࣈίʔυ
CUCC Ṗͷ63-Τϯίʔυࣄ݅ Content-Type:text/html; charset=%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89 ڪΔڪΔ63-σίʔυ DIBSTFUจࣈίʔυ
CUCC Ṗͷ63-Τϯίʔυࣄ݅ Content-Type:text/html; charset=%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89 ʊਓਓਓਓਓਓਓʊ ʼ จࣈίʔυ ʻ ʉ:?:?:?:?:ʉ ڪΔڪΔ63-σίʔυ
DIBSTFUจࣈίʔυ
CUCC ͦͷଞʹ • ᶃ᷂ͳͲͷจࣈԽ͚ରࡦ • จࣈίʔυࣗಈผ ˠdϲ݄ؒɺจࣈίʔυͱ֨ಆ
CUCC จࣈίʔυ
CUCC จࣈίʔυʁ ʮจࣈίʔυʯ͕ԿΛࢦ͔͢จ຺ʹΑΔͨΊɺ ਖ਼͍͠ཧղͷͨΊʹԼهͷͭΛ۠ผ͢Δඞཁ͕͋Δɻ • ූ߸Խจࣈू߹ $PEFE$IBSBDUFS4FUʢ$$4ʣ "4$** +*49 6OJDPEF
FUD • จࣈූ߸Խํࣜ $IBSBDUFS&ODPEJOH4DIFNFʢ$&4ʣ 4IJGU@+*4 &6$+1 65' FUD
CUCC จࣈίʔυʁ ʮจࣈίʔυʯ͕ԿΛࢦ͔͢จ຺ʹΑΔͨΊɺ ਖ਼͍͠ཧղͷͨΊʹԼهͷͭΛ۠ผ͢Δඞཁ͕͋Δɻ • ූ߸Խจࣈू߹ $PEFE$IBSBDUFS4FUʢ$$4ʣ "4$** +*49 6OJDPEF
FUD • จࣈූ߸Խํࣜ $IBSBDUFS&ODPEJOH4DIFNFʢ$&4ʣ 4IJGU@+*4 &6$+1 65' FUD
CUCC จࣈίʔυʁ ʮจࣈίʔυʯ͕ԿΛࢦ͔͢จ຺ʹΑΔͨΊɺ ਖ਼͍͠ཧղͷͨΊʹԼهͷͭΛ۠ผ͢Δඞཁ͕͋Δɻ • ූ߸Խจࣈू߹ $PEFE$IBSBDUFS4FUʢ$$4ʣ "4$** +*49 6OJDPEF
FUD • จࣈූ߸Խํࣜ $IBSBDUFS&ODPEJOH4DIFNFʢ$&4ʣ 4IJGU@+*4 &6$+1 65' FUD
CUCC ৄ͘͠ IUUQTTQFBLFSEFDLDPNUPEPLSKJTLBSBQPSVXFO[JLPEPSVNFO
CUCC 6OJDPEF&NPKJͱͦͷྺ࢙
CUCC
CUCC
CUCC
CUCC
CUCC ถ ߹ऺࠃ ݄ Ұൠڭॻԋઆ ࠃͷݱঢ়ʹ͍ͭͯͷେ౷ྖͷݟղΛड़ɺओཁͳ࣏՝Λઆ໌͢Δԋઆ IUUQTVQMPBEXJLJNFEJBPSHXJLJQFEJBDPNNPOTDDG1SFTJEFOU@0CBNB@EFMJWFST@UIF@4UBUF@PG@UIF@6OJPO@BEESFTT@+BO@ @KQH
CUCC IUUQTXXXUIFHVBSEJBODPNVTOFXTOHJOUFSBDUJWFKBOTQTUBUFPGUIFVOJPOBEESFTTPCBNBFNPKJ ߹ऺࠃएऀ͚ʹશจΛ༁
CUCC IUUQTXXXUIFHVBSEJBODPNVTOFXTOHJOUFSBDUJWFKBOTQTUBUFPGUIFVOJPOBEESFTTPCBNBFNPKJ
CUCC 5IBOLZPV (PECMFTTZPV (PECMFTTUIJTDPVOUSZXFMPWF "QQMBVTF ͋Γ͕ͱ͏ɺօ͞Μʹਆͷ͝Ճޢ͕͋Γ·͢Α͏ʹɺ զʑ͕Ѫ͢Δ͜ͷࠃʹਆͷ͝Ճޢ͕͋Γ·͢Α͏ʹɻ ʢେͳഥखʣ IUUQTXXXUIFHVBSEJBODPNVTOFXTOHJOUFSBDUJWFKBOTQTUBUFPGUIFVOJPOBEESFTTPCBNBFNPKJ
CUCC ӳ ΦοΫεϑΥʔυࣙॻ ͷʮ8PSEPGUIF:FBSʯ
CUCC ӳ ΦοΫεϑΥʔυࣙॻ ͷʮ8PSEPGUIF:FBSʯ IUUQCMPHPYGPSEEJDUJPOBSJFTDPNXPSEPGUIFZFBSFNPKJ
CUCC ӳ ΦοΫεϑΥʔυࣙॻ ͷʮ8PSEPGUIF:FBSʯ IUUQMELKFTIUUPETWLXQFOHJOFOFUEOBDEODPNXQDPOUFOUVQMPBETFNPKJGSFRVFODZQOH
CUCC ӳ ΦοΫεϑΥʔυࣙॻ ͷʮ8PSEPGUIF:FBSʯ IUUQMELKFTIUUPETWLXQFOHJOFOFUEOBDEODPNXQDPOUFOUVQMPBETFNPKJGSFRVFODZQOH ΈΜͳ&NPKJେ͖
CUCC IUUQXXXFNPKJUSBDLFSDPN
CUCC 6OJDPEF&NPKJ • 6OJDPEFʢ݄ʣʹॳऩ • ʮέʔλΠֆจࣈʯͷ૬ޓӡ༻ੑ֬อ͕త • ༷653ʹ
CUCC &NPKJऩ·Ͱͷឯ༨ۂં ݄͔Βཌ݄ʹ͔͚ͯ 6OJDPEFͷϝʔϦϯάϦετͰܹ͕ຄൃ
CUCC &NPKJऩ·Ͱͷឯ༨ۂં ݄͔Βཌ݄ʹ͔͚ͯ 6OJDPEFͷϝʔϦϯάϦετͰܹ͕ຄൃ
CUCC 3JDL.D(PXBO 6OJDPEFίϯιʔγΞϜઃ͔࣌Βͷϝϯόʔɻ࣌ͷઐݹจࣈͷऩू IUUQTHSPVQTHPPHMFDPNGPSVNNTHFNPKJVOJDPEFO:QXB-5UHLO/RQX+L:9P+
CUCC 3JDL.D(PXBO 6OJDPEFίϯιʔγΞϜઃ͔࣌Βͷϝϯόʔɻ࣌ͷઐݹจࣈͷऩू IUUQTHSPVQTHPPHMFDPNGPSVNNTHFNPKJVOJDPEFO:QXB-5UHLO/RQX+L:9P+
CUCC &NPKJͳΜͯͷΞϗ͍͘͞ྲྀߦͩͱࢥ͏ɻ 6OJDPEFʹؚΊΔͷ͕ྑ͍ͱࢥΘͳ͍ɻ 3JDL.D(PXBO 6OJDPEFίϯιʔγΞϜઃ͔࣌Βͷϝϯόʔɻ࣌ͷઐݹจࣈͷऩू IUUQTHSPVQTHPPHMFDPNGPSVNNTHFNPKJVOJDPEFO:QXB-5UHLO/RQX+L:9P+
CUCC &NPKJͳΜͯͷΞϗ͍͘͞ྲྀߦͩͱࢥ͏ɻ 6OJDPEFʹؚΊΔͷ͕ྑ͍ͱࢥΘͳ͍ɻ 3JDL.D(PXBO 6OJDPEFίϯιʔγΞϜઃ͔࣌Βͷϝϯόʔɻ࣌ͷઐݹจࣈͷऩू .BSL%BWJT 6OJDPEFίϯιʔγΞϜཧࣄʹͯ͠&NPKJऩͷఏҊऀ IUUQTHSPVQTHPPHMFDPNGPSVNNTHFNPKJVOJDPEFO:QXB-5UHLO/RQX+L:9P+
CUCC &NPKJͳΜͯͷΞϗ͍͘͞ྲྀߦͩͱࢥ͏ɻ 6OJDPEFʹؚΊΔͷ͕ྑ͍ͱࢥΘͳ͍ɻ 3JDL.D(PXBO 6OJDPEFίϯιʔγΞϜઃ͔࣌Βͷϝϯόʔɻ࣌ͷઐݹจࣈͷऩू .BSL%BWJT 6OJDPEFίϯιʔγΞϜཧࣄʹͯ͠&NPKJऩͷఏҊऀ զʑԿճٞͨ͠͡Όͳ͍͔ɻ ͯ͞ډΓΛ͍ͯͨ͠ͳ IUUQTHSPVQTHPPHMFDPNGPSVNNTHFNPKJVOJDPEFO:QXB-5UHLO/RQX+L:9P+
CUCC &NPKJͳΜͯͷΞϗ͍͘͞ྲྀߦͩͱࢥ͏ɻ 6OJDPEFʹؚΊΔͷ͕ྑ͍ͱࢥΘͳ͍ɻ 3JDL.D(PXBO 6OJDPEFίϯιʔγΞϜઃ͔࣌Βͷϝϯόʔɻ࣌ͷઐݹจࣈͷऩू ݹจࣈΑΓधཁ͕͋Δɻ զʑԿճٞͨ͠͡Όͳ͍͔ɻ ͯ͞ډΓΛ͍ͯͨ͠ͳ IUUQTHSPVQTHPPHMFDPNGPSVNNTHFNPKJVOJDPEFO:QXB-5UHLO/RQX+L:9P+ .BSL%BWJT
6OJDPEFίϯιʔγΞϜཧࣄʹͯ͠&NPKJऩͷఏҊऀ
CUCC ͦͷଞʹ • ʮֆจࣈͷొɺύϯυϥͷശΛ։͚Δ͜ͱʹͳΔʯ • ʮ͖ΘΊͯڧ͘ຊͷจԽʹґଘ͓ͯ͠ΓɺຊਓҎ֎ʹ ཧղ͕͍͠ʯ • ʮ&NPKJจষྗ͕ශऑͰ ײΛจࣈͰදݱͰ͖ͳ͍ਓͷͨΊͷͷͩʯ
CUCC ͦͷଞʹ • ʮֆจࣈͷొɺύϯυϥͷശΛ։͚Δ͜ͱʹͳΔʯ • ʮ͖ΘΊͯڧ͘ຊͷจԽʹґଘ͓ͯ͠ΓɺຊਓҎ֎ʹ ཧղ͕͍͠ʯ • ʮ&NPKJจষྗ͕ශऑͰ ײΛจࣈͰදݱͰ͖ͳ͍ਓͷͨΊͷͷͩʯ
CUCC ͦͷଞʹ • ʮֆจࣈͷొɺύϯυϥͷശΛ։͚Δ͜ͱʹͳΔʯ • ʮ͖ΘΊͯڧ͘ຊͷจԽʹґଘ͓ͯ͠ΓɺຊਓҎ֎ʹ ཧղ͕͍͠ʯ • ʮ&NPKJจষྗ͕ශऑͰ ײΛจࣈͰදݱͰ͖ͳ͍ਓͷͨΊͷͷͩʯ
CUCC ͦͷଞʹ • ʮֆจࣈͷొɺύϯυϥͷശΛ։͚Δ͜ͱʹͳΔʯ • ʮ͖ΘΊͯڧ͘ຊͷจԽʹґଘ͓ͯ͠ΓɺຊਓҎ֎ʹ ཧղ͕͍͠ʯ • ʮ&NPKJจষྗ͕ශऑͰ ײΛจࣈͰදݱͰ͖ͳ͍ਓͷͨΊͷͷͩʯ
CUCC ͦͷଞʹ • ʮֆจࣈͷొɺύϯυϥͷശΛ։͚Δ͜ͱʹͳΔʯ • ʮ͖ΘΊͯڧ͘ຊͷจԽʹґଘ͓ͯ͠ΓɺຊਓҎ֎ʹ ཧղ͕͍͠ʯ • ʮ&NPKJจষྗ͕ශऑͰ ײΛจࣈͰදݱͰ͖ͳ͍ਓͷͨΊͷͷͩʯ
CUCC ࡢࠓͷ&NPKJࣄ
CUCC ࡢࠓͷ&NPKJࣄ • &NPKJ.PEJGJFST • ;8+4FRVFODF
CUCC ʮͳΜͰࠇਓͷ&NPKJ͕ͳ͍ͷ ʯ ͖͔͚ͬϚΠϦʔɾαΠϥεͷπΠʔτ ͱݴΘΕ͍ͯΔ
CUCC U+1F3FE
CUCC U+1F3FE
CUCC U+1F3FE
CUCC &NPKJ.PEJGJFST • ͷ6OJDPEFͰՃ • ίʔυϙΠϯτ6 ''#d6 ''' IUUQVOJDPEFPSHSFQPSUTUS&
[email protected]
@5BCMF
CUCC
CUCC
CUCC
CUCC
CUCC 6 %;&308*%5)+0*/&3 • ;8+;FSP8JEUI+PJOFS • ίʔυϙΠϯτ6 % • จࣈಉ࢜Λ͚ͬͭ͘ΔʮணࡎʯͷΑ͏ͳͷ
IUUQTXXXZPVUVCFDPNXBUDI WPO[%5Q3KLYT
CUCC ;8+4FRVFODFT IUUQXXXVOJDPEFPSHFNPKJDIBSUTFNPKJ[XKTFRVFODFTIUNM
CUCC ;8+4FRVFODFT IUUQXXXVOJDPEFPSHFNPKJDIBSUTFNPKJ[XKTFRVFODFTIUNM
CUCC ;8+4FRVFODFT ;&308*%5)+0*/&3 IUUQXXXVOJDPEFPSHFNPKJDIBSUTFNPKJ[XKTFRVFODFTIUNM
CUCC ;8+4FRVFODFT OFVUSBMͳGBNJMZ
CUCC ;8+4FRVFODFT
CUCC ;8+4FRVFODFT
CUCC ;8+4FRVFODFT
CUCC ;8+4FRVFODFT 6 %;&308*%5)+0*/&3
CUCC ;8+4FRVFODFT 6 '."/
CUCC ;8+4FRVFODFT 6 '80."/
CUCC ;8+4FRVFODFT 6 '#0:
CUCC ϓϩάϥϜ͔Βѻ͏
CUCC 6OJDPEFͷߏ ۠ɺɺ໘ɺ܈͔ΒͳΔ࣍ݩߏ IUUQTXXXXPSH*OUFSOBUJPOBMBSUJDMFTEFGJOJUJPOTDIBSBDUFST
CUCC &NPKJͱαϩήʔτϖΞ • 6OJDPEF&NPKJ#.1ʹؚ·Εͳ͍ • ֦ுྖҬΛදݱ͢ΔͨΊʹαϩήʔτϖΞΛ༻ ˠ ѻ͍͕໘ʂ
CUCC &NPKJΛ͍͍ײ͡ʹѻ͏ϥΠϒϥϦ • KTFNPKJ +BWB4DSJQU • FNPKJKBWB +BWB
CUCC KTFNPKJ • ͳͲͷΤΠϦΞεΛ6OJDPEFίʔυϙΠϯτʹม • ϒϥβ͕ରԠ͍ͯ͠ͳ͍߹$44CBDLHSPVOEJNBHFͰସ
CUCC KTFNPKJ • ͳͲͷΤΠϦΞεΛ6OJDPEFίʔυϙΠϯτʹม • ϒϥβ͕ରԠ͍ͯ͠ͳ͍߹$44CBDLHSPVOEJNBHFͰସ
CUCC ΤΠϦΞε ˠ &NPKJ var converter = new EmojiConverter(); var
str = "Hello:grinning:, Emoji World :wink:"; var result = converter.replace_colons(str); Console.log(result); // "Hello , Emoji World "
CUCC FNPKJKBWB • ΤΠϦΞεͱ&NPKJͷ૬ޓม͕Մೳ • &NPKJఆϑΟϧλϦϯάɺ )5.-͚ΤϯςΟςΟࢀরʹม͢ΔػೳͳͲఏڙ
CUCC FNPKJKBWB • ΤΠϦΞεͱ&NPKJͷ૬ޓม͕Մೳ • &NPKJఆϑΟϧλϦϯάɺ )5.-͚ΤϯςΟςΟࢀরʹม͢ΔػೳͳͲఏڙ
CUCC FNPKJKBWB • ΤΠϦΞεͱ&NPKJͷ૬ޓม͕Մೳ • &NPKJఆϑΟϧλϦϯάɺ )5.-͚ΤϯςΟςΟࢀরʹม͢ΔػೳͳͲఏڙ
CUCC ΤΠϦΞε ˠ &NPKJ String str = "Hello:grinning:, Emoji World
:wink:"; String result = EmojiParser.parseToUnicode(str); System.out.println(result); // "Hello , Emoji World "
CUCC ͓·͚&NPKJΛͬ͞ͱೖྗ .BDͳΒ $USM $PNNBOE εϖʔε
CUCC )BWFB(PPE&NPKJ-JGF