2009-02-27 6 views
4

내가 이런 UTF8 문자열을 포함하는 해시, 직렬화하는 경우 : 액티브 필드에루비 : 직렬화의 UTF8 문제가

poll.variants = {0 => 'тест',1 => '-тест-',2 => 'test # test "тест'} 

을, 결과 필드에는 다음이 포함

--- 
0: !binary | 
    0YLQtdGB0YI= 

1: !binary | 
    LdGC0LXRgdGCLQ== 

2: !binary | 
    dGVzdCAjIHRlc3QgItGC0LXRgdGC 

UTF8 문자열을 얻을 어떤 이유로 든 바이너리 및 base64로 인코딩됩니다. 필드의 데이터 정렬은 utf8_general_ci이고 약간 실망합니다.

ActiveRecord를 만들 수있는 방법이 있습니까? 사람이 읽을 수있는 yaml을 필드에 직렬화 하시겠습니까?

답변

5

액티브 만들 수있는 방법이 있나요 다음 필드에 사람이 읽을 수있는 YAML를 직렬화가? (임의의 부호화 단위) 임의의 텍스트를 인코딩하도록

그 호를 Base64 인코딩 다운 UTF-8 수락 해달라고 스토어에 와이어 및/또는 저장소를 통해 보내 다음 안전한 최소 공통 denonimator에 데이터.

+0

아, 그건 합리적입니다. 설명 해줘서 고마워. –

+1

질문 : 왜 레일스가 DB에서 문자열을 UTF-8로 역 직렬화하지 않습니까? 그것은 ASCII-8BIT를 반환합니다 ... – awendt

관련 문제