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.8k
楽しい文字コード入門 知っておきたい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
520
Onboarding Process for Scala Team
todokr
0
1.8k
Running Scala on AWS Lambda in a Snappy Way
todokr
7
4.4k
Scalaでつくる ちょっとしたCLIツール
todokr
0
960
新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure
todokr
28
19k
わかる!Java to Clojure
todokr
6
1.8k
Scala絵文字ライブラリに Macroなどを導入してみた
todokr
0
1.4k
Clojureに入門してHTTPサーバーをつくってみた話
todokr
3
1.1k
emojiconに行ってきました
todokr
2
750
Other Decks in Programming
See All in Programming
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
180
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
220
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
3.6k
Signals & Resource API in Angular: 3 Effective Rules for Your Architecture @BASTA 2025 in Mainz
manfredsteyer
PRO
0
110
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
200
dynamic!
moro
9
6.8k
株式会社 Sun terras カンパニーデック
sunterras
0
240
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.6k
CSC509 Lecture 05
javiergs
PRO
0
300
Serena MCPのすすめ
wadakatu
4
910
CSC509 Lecture 06
javiergs
PRO
0
250
Reduxモダナイズ 〜コードのモダン化を通して、将来のライブラリ移行に備える〜
pvcresin
2
690
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
Music & Morning Musume
bryan
46
6.8k
How GitHub (no longer) Works
holman
315
140k
BBQ
matthewcrist
89
9.8k
Why Our Code Smells
bkeepers
PRO
339
57k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Become a Pro
speakerdeck
PRO
29
5.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Unsuck your backbone
ammeep
671
58k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
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