2009-05-13 2 views
3

Ruby에서 Iconv 라이브러리를 사용하여 UTF-8에서 UTF-32, UTF-16 등으로 인코딩을 변환했습니다. 꽤 좋았습니다.인코딩 변환을위한 Iconv 라이브러리에 대한 좋은 대안이 있습니까?

그러나, 나는의 Big5에서 UTF-8로 변환이 문제가 보여요 - 예외가 유효하지 않은 시퀀스 발생합니다 ...

을하고 UTF-8로 CP950로 변환 할 때 문제가 사라집니다 그중 CP950은 본질적으로 Big5 ...

그래서 Iconv를 사용하는 것 외에 다른 좋은 대안이 있을까? 아니면 CP950이 Big5의 더 나은 버전입니까?

답변

2

Big5와 CP950은 거의 동일하지만 차이점이 있습니다. 유니 코드 웹 사이트에는 다른 인코딩을 유니 코드로 변환하기위한 참조 파일이 있습니다. Big5CP950이 다릅니다. Iconv의 경험이 좋았습니다. 나는 그 행동이 정확할 것이라고 생각합니다.

CP950에는 있지만 Big5에는없는 문자 중 일부는 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA15A, 0xA1C3, 0xA1C5, 0xA1FE, 0xA240, 0xA3E1, 0xA2CC, 0xA2CE의 16 진수 값을 갖습니다. 입력에 이러한 값이 포함되어 있으면 파일이 유효한 Big5가 아닙니다.

2

많은 많은 big5 변형이 있습니다. CP950은 그 중 하나 일뿐입니다. http://www.moztw.org/docs/big5/

big5의 경우 공식 업데이트 된 버전 인 "big5-2003"을 사용하는 것이 좋습니다.

2

ICU을 보시면 다른 것들 사이에서 문자 변환을 수행하는 라이브러리입니다.

다른 답변은 인코딩을보다 신중하게 검토해야 할 수도 있음을 나타냅니다.

관련 문제