๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
studies/Back-end

[Kotlin] ๋ฌธ์ž์—ด ๋ฐ”์ดํŠธ ์ˆ˜ ๊ตฌํ•˜๊ธฐ / ๋ฐ”์ดํŠธ ํฌ๊ธฐ

by Vada Kim 2023. 11. 5.
728x90
๋ฐ˜์‘ํ˜•

์ฝ”ํ‹€๋ฆฐ์—์„œ ๋ฌธ์ž์—ด์˜ ๋ฐ”์ดํŠธ ์ˆ˜(ํฌ๊ธฐ)๋ฅผ ๊ตฌํ•˜๋Š” ํ™•์žฅํ•จ์ˆ˜๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ์— ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

val String.byteSize: Int
	get() = toByteArray(Charsets.UTF_8).size

 

ํด๋ž˜์Šค ์•ˆ์— ๋‘์ง€ ์•Š๊ณ  ๋ฐ–์— ๋‘์–ด์•ผ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋“ค์—์„œ ์‚ฌ์šฉ์ด ์šฉ์ดํ•˜๋‹ค.

 

์ž์„ธํ•œ ์„ค๋ช…์„ ์•„๋ž˜์—์„œ ์ž‡๊ฒ ๋‹ค.

 

 

toByteArray()

์ฝ”ํ‹€๋ฆฐ์˜ String ํด๋ž˜์Šค์—์„  toByteArray()๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค.

๋ฌธ์ž์—ด๋กœ๋ถ€ํ„ฐ ByteArray๋ฅผ ์ถ”์ถœํ•˜์˜€์„๋•Œ ์ด ByteArray์˜ ํฌ๊ธฐ๊ฐ€ ๋ฌธ์ž์—ด์˜ ๋ฐ”์ดํŠธ ์ˆ˜์ด๋‹ค.

fun String.toByteArray(
    charset: Charset = Charsets.UTF_8
): ByteArray

 

๊ธฐ๋ณธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ๋Š” Charset ํด๋ž˜์Šค๋ฅผ ๋ฐ›๋Š”๋‹ค. ๋””ํดํŠธ๊ฐ’์€ UTF-8์ด๋‹ค.

๊ฐ™์€ ๋ฌธ์ž์—ด์ด๋ผ๋„ ์บ๋ฆญํ„ฐ์…‹(์ธ์ฝ”๋”ฉ)์— ๋”ฐ๋ผ ๋ฐ”์ดํŠธ ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ์บ๋ฆญํ„ฐ์…‹์„ ์ •ํ™•ํ•˜๊ฒŒ ๋„ฃ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

Kotlin์—์„œ ์ธ์ฝ”๋”ฉ๋ณ„ Charset ํด๋ž˜์Šค ์ถ”์ถœํ•˜๊ธฐ

์ธ์ฝ”๋”ฉ ๋ช… ๋ช…์‹œ ๋ฐฉ๋ฒ• (2๊ฐ€์ง€)
ISO-8859-1 Charsets.ISO_8859_1
charset
("ISO-8859-1")
US-ASCII Charsets.US_ASCII 
charset("US-ASCII")
UTF-8 Charsets.UTF_8 
charset("UTF-8")

UTF-16 Charsets.UTF_16 
charset("UTF-16")
UTF-16BE Charsets.UTF_16BE 
charset("UTF-16BE")
UTF-16LE Charsets.UTF_16LE 
charset("UTF-16LE")

 

 

 

 

 

 

์ฐธ๊ณ :

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-byte-array.html

https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/charset.html

728x90
๋ฐ˜์‘ํ˜•