2011-10-10 3 views
0

이미지를 NSData로 변환하는 iphone 앱이 있습니다. & 다음 base64 인코딩 된 문자열로 변환됩니다.BLOB 데이터가 공백으로 '+'를 대체합니다.

이 인코딩 된 문자열을 서버의 데이터베이스 서버에 제출하면 '+'서버에 저장하는 동안 '공간'으로 변환되어 디코더가 제대로 작동하지 않습니다.

데이터베이스의 테이블에 대한 기본 인코딩 문제가 있다고 생각합니다. 현재 자사의 라틴어, 나는 그것을 UTF8로 변경하려고했지만 여전히 문제가 종료됩니다.

다른 인코딩, 도와주세요

답변

2

물론 인코딩과는 관계가 없습니다. base64와 충돌을 일으키는 것은 POSTGET의 형식입니다. http://en.wikipedia.org/wiki/Base64#Variants_summary_table에서 당신은 등 URL을 base64로 작동하도록 설계 대안을 참조

이러한 변형의

하나는 "URL과 파일명 안전 알파벳 (RFC 4648 'base64url'인코딩)와 Base64로"-/+ 대체하는 것입니다 _.

또 다른 대안은 불쾌한 문자 +/=%xx으로 각각의 16 진수로 대체하는 것이지만 데이터가 불필요하게 길어집니다.

+0

: 그럼 어떻게해야합니까? 인코딩 로직을 변경해야합니다. 그렇지 않으면 openssl과 같은 범용 디코더가 제출 된 데이터를 디코딩 할 수 있도록이 인코딩 된 문자열을 URL 인코딩 된 문자열로 변환해야합니까? –

+0

받는쪽에 무엇을 가지고 있는지에 따라 그 중 하나를 할 수 있습니다. 바꿔 치기는 아주 간단하고, 또한 urlencoding도 - 당신이 가장 잘 어울리는 것을하십시오. – glglgl

관련 문제