๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript

js ์—์„œ ํ•œ๊ธ€ ๊ธ€์ž ์ˆ˜ ์„ธ๊ธฐ

by soy๋ฏธ๋‹ˆ 2022. 10. 13.

 

 

ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•  ๋•Œ ํŒŒ์ผ๋ช…์„ ๋ณด์—ฌ์ฃผ๋Š” input ๋ฐ•์Šค ๊ธธ์ด ๋ณด๋‹ค ํŒŒ์ผ๋ช…์ด ๋” ๊ธธ ๊ฒฝ์šฐ,

ํŒŒ์ผ๋ช…์ด ์˜ค๋ฒ„๋˜์–ด ์ผ๋ถ€๋งŒ ์ถœ๋ ฅ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

ํŒŒ์ผ๋ช…์˜ ๊ธ€์ž ์ˆ˜๋ฅผ ์ œํ•œํ•˜์—ฌ ํŒŒ์ผ๋ช…์ด input ๋ฐ•์Šค ๋‚ด์—์„œ ์ž˜๋ฆฌ์ง€ ์•Š๊ฒŒ ์ถœ๋ ฅํ•ด์•ผ ํ–ˆ๋‹ค.

 

ํŒŒ์ผ๋ช…์— ํ•œ๊ธ€์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ํ•œ๊ธ€์€ ๋ชจ์Œ/์ž์Œ ๋‹จ์œ„๋กœ length ๊ฐ€ ๊ณ„์‚ฐ๋˜๊ณ  ์žˆ์—ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ๋ช…์ด "์•„moya" ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ์•„ ๋ผ๋Š” ๊ธ€์ž์˜ length ๋Š” 1๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ 'ใ…‡' ๊ณผ 'ใ…' ๊ฐ€ ๊ฐ๊ฐ ๊ณ„์‚ฐ๋˜์–ด ๊ธธ์ด๊ฐ€ 2๋กœ ์ถœ๋ ฅ๋œ๋‹ค. ํŒŒ์ผ๋ช… ๊ฐ’์ด ๋“  ๋ณ€์ˆ˜๋ฅผ ์œ ๋‹ˆ์ฝ”๋“œ ์ •๊ทœํ™”(normalize) ํ•ด์ฃผ๋‹ˆ ํ•œ๊ธ€ length ๊ธธ์ด๊ฐ€ 1๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

// ํŒŒ์ผ๋ช… ์ •๊ทœํ™”
var fileName = orgFileName.normalize('NFC');

 

์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๊ธ€์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๊ฒฝ์šฐ, ๊ธ€์ž ์ˆ˜๋ฅผ ์ œํ•œํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ normalize ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

์ฐธ๊ณ ํ•œ ๋ธ”๋กœ๊ทธ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

 

[๋ฒˆ์—ญ] ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž์—ด์„ ์ •๊ทœํ™” ํ•ด์•ผํ•˜๋Š” ์ด์œ 

์›์ œ: Alessandro Segala - When "Zoë" !== "Zoë". Or why you need to normalize Unicode strings > ์›๋ณธ ๊ฒŒ์‹œ๋ฌผ ๋งํฌ: https://withblue.ink/2019/03/11/why-you-need-to-normalize-unicode-strings.html ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ์–ธ์  ๊ฐ€ ํ•œ ๋ฒˆ...

velog.io

 

๋Œ“๊ธ€