2013-11-21 3 views
0

데이터베이스 내에이 샘플 하위 문자열이 포함 된 문자열이 있습니다. 내가 JSON이 변환 할 때 (그들은 비 ASCII 문자 때문에)레일스 JSON 비표준 문자

string = "\357\277\275\357\277\275" 

, 나는이 나쁜 남자를 많이 얻을. jQuery를이 JSON을 구문 분석하려고 그런

은, 그냥 밖으로 배변하고 나에게 SyntaxError: Unexpected Token

다음은 세 가지 가능한 솔루션을 제공합니다.

  1. 같은 "잘못된 문자"등의 메시지와 함께 문자열을 교체
  2. 잘못된 문자를 제거 JSON 허용 값으로 문자열을 변환

나는 이들의와 잘 모르지만, 그들에 대해 어떻게 가야할지 모릅니다. 생각?

답변

0

, 당신은을 사용할 수 있습니다 정규식 다음.

"your_string".gsub!(/[^[:print:]]/, '') 
0

"\357\277\275"은 대체 문자 ()의 ascii 8 진수 표현입니다. 이것은 JSON으로 변환 할 때 문자열에 비 ASCII 문자가 있음을 나타냅니다. 이상적으로, 비 ASCII 문자가 업스트림 데이터에 점점 어떻게 정체성 싶은하지만 쉽게 수정은 삭제하는 것입니다

루비 문자열에서 인쇄 할 수없는 문자를 제거하기 위해
clean_string = "absr\357\277\275/xyz".gsub("\357\277\275","") 
    #=> "absr/xyz" 
+0

Josh. 스트림에서 제거하는 것이 아니라 실제로 데이터베이스에 있어야합니다. 나는 그 (것)들을 확인하고 제거하는 간단한 방법이 필요하다. 귀하의 솔루션은 괜찮지 만 특정 경우에만 작동합니다. 나는 위의 내용이 데이터베이스에있는 비 ASCII 값의 * 샘플 *이라는 질문을 업데이 트했습니다. 내가 필요한 것은 일반적인 접근 방식인데 반해 이것은 특정한 접근 방식입니다. – screenmutt