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
반응형
'studies > Back-end' 카테고리의 다른 글
아파치(Apache) SSL(TLS) 지원 버전 변경 방법 및 SSL과 TLS의 차이점 (0) | 2024.06.15 |
---|---|
[Kotlin] IntelliJ kotlinx.coroutines 모듈 Import 안됨 해결 (0) | 2023.12.10 |
[MySQL] JSON 타입 사용해서 JSON Array 다루기 (0) | 2023.09.16 |
mac terminal vim / how to change readonly file (0) | 2022.01.26 |
[Kotlin] 코틀린 스코프 함수 정리 (0) | 2022.01.19 |