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.9k
Running Scala on AWS Lambda in a Snappy Way
todokr
7
4.5k
Scalaでつくる ちょっとしたCLIツール
todokr
0
970
新しいプログラミング言語の学び方 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
760
Other Decks in Programming
See All in Programming
Module Proxyのマニアックな話 / Niche Topics in Module Proxy
kuro_kurorrr
0
1.3k
EMこそClaude Codeでコード調査しよう
shibayu36
0
560
contribution to astral-sh/uv
shunsock
0
580
Webサーバーサイド言語としてのRustについて
kouyuume
1
5k
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
320
Inside of Swift Export
giginet
PRO
1
310
Kotlinで実装するCPU/GPU 「協調的」パフォーマンス管理
matuyuhi
0
250
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
140
自動テストのアーキテクチャとその理由ー大規模ゲーム開発の場合ー
segadevtech
0
170
ボトムアップの生成AI活用を推進する社内AIエージェント開発
aku11i
0
1.4k
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
140
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
360
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Code Reviewing Like a Champion
maltzj
526
40k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Designing for humans not robots
tammielis
254
26k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
650
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
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