내 iPhone 앱에서 애플리케이션은 XML 형식의 서버에서 데이터를 수신하고이를 UILabel에 표시합니다. 서버에서 오는 데이터에는 £
기호가 포함될 수 있습니다. 이 부호는 어떤 방식 으로든 인코딩되지 않으며 XML 문자열에 그대로 전달됩니다. 앱은이 문자열을 받아 UILabel에 표시합니다.UILabel의 파운드 기호가 HTML 엔터티로 신비하게 인코딩되었습니다.
이것은 대부분 잘 작동합니다. iOS 5.1을 포함하여 시뮬레이터에서 항상 정상적으로 작동하지만 사용자 중 한 명이 £
을 표시하는 대신 UILabel이 실제로는 £
을 표시한다는 버그를보고했습니다. 이는 대부분 bizzare입니다.
UILabel의 텍스트는 코드의 단순한 라인으로 설정된다 : I 디버거로 코드를 밟은 올바른 문자열 값 통과 설정되는 것을 알 수
contentLabel.text = [node getValueForKey:keyName];
. 나는 또한 시뮬레이터에서 정확한 결과를 볼 수있다.
그러나 (아래 이미지에서 볼 수 있듯이)이 사용자의 전화에서 뭔가 잘못 될 수 있습니다. 제가 누락 된 것이 있습니까? 여기에 무슨 문제가있을 수 있습니까? 더 중요한 건 어떻게 해결할 수 있을까요? 모든 것들이 내 전화 및 시뮬레이터에서 잘 작동한다는 사실 때문에이 일이 복잡해지며이 사용자는 전국에서 나와 내 전화를 통해 물리적으로 액세스 할 수 없습니다.
다음은 시뮬레이터의 스크린 샷입니다 :
그리고 여기에 영향을받는 사용자의 휴대 전화에서의 스크린 샷입니다 :
당신이 XML을 구문 분석하는 데 사용하고있는 라이브러리
답장을 보내 주셔서 감사합니다. 내 장치는 동일한 iOS 버전이지만 실제 전화 모델은 다릅니다. 나는 지금 당장 가서 새로운 전화를받을 여유가 없다. 그래서, 불행히도, 그것은 의문의 여지가있다.나는 보내지는 문자열을보기에 충분한 로그를 가지고있다. 그리고 그 안에 '£'이 없지만'£ '기호 만있다. 아, 그리고 내가 원한다고해도 사용자가 다른 빌드를 설치하게 할 수는 없습니다. 우리는 18 세의 인턴이 iPhone과 노키아 폰의 차이점이있는 박물관에서 일하고 있다고 말합니다. iPhone은 더 시원합니다. –
젠장, 그게 수치 야. 아 글쎄, 당신은 항상 find/replace 기술로 갈 수있을 것 같아요? –
현재 문제를 재현하고 싶습니다. –