문제

UCS2 (문자 당 2 바이트)에있는 문자열을 루비의 UTF8 문자열로 변환하는 방법은 무엇입니까?

도움이 되었습니까?

해결책

당신은 조사해야합니다 아이콘, 루비 표준 라이브러리의 일부입니다. 이 작업을 위해 설계되었습니다.

구체적으로,

 Iconv.iconv("utf-8", "utf-16", str).first

변환을 처리해야합니다.

다른 팁

대부분의 경우 UCS2 인코딩의 문자열을 UCS2 인코딩의 문자열을 UTF-16 문자열로 표시 할 수 있기 때문에 (0x10000보다 큰 코드가있는 UTF-16 char에서는 거의 사용되지 않습니다) Iconv를 사용하는 것이 문자열을 변환하는 더 좋은 방법이라고 생각합니다. 샘플 코드 :

require 'iconv'

ic = Iconv.new 'UTF-8', 'UTF-16'
utf8string = ic.iconv ucs2string

루비 1.9로 :

string.encode("utf-8")

문자열 인코딩을 알 수없는 경우 먼저 설정해야 할 수도 있습니다.

string.force_encoding("utf-16be").encode("utf-8") # Big-endian
string.force_encoding("utf-16le").encode("utf-8") # Little-endian
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top