2013-11-26 2 views
0

나는 사용자 목록이 포함 된 데이터베이스를 가지고 있으며 가끔 웹 서비스를 통해 원격 시스템에 사용자 목록을 전달합니다. 원격 사용자 중 한 곳에서 새로운 사용자 중 누구도 나타나지 않는다고 말했습니다.XML 용 웹 서비스에서 비표준 문자 살생

약간의 연구 결과가 나타났습니다. 웹 서비스는 데이터베이스에서 XML 파일로 사용자 목록을 제공하고 사용자 중 한 명은 이름에 비표준 문자 ("María")를 사용합니다. 대상 PC는 XML이 "손상"되어 그 이후의 레코드 중 NONE이 처리되므로이 비표준 문자 및 초크를 보게됩니다.

Maria는 Maria가되었습니다. 갑자기 모든 기록이 문제없이 처리됩니다. 그러나 장기적인 해결책은 나에 관한 것입니다. 어떻게하면 이러한 비표준 문자를 어떻게 인식 할 수 있습니까?

webservice는 데이터베이스 테이블의 내용을 가져 와서 XML로 출력합니다. XML 파일은 내가 수동으로 구성하는 것이 아니며 웹 서비스가 비즈니스를 수행하는 방식입니다.

미리 도움 주셔서 감사합니다.

+0

웹 서비스가 XML을 형식화 (인코딩)하는 방법을 제어 할 수 없다면 위생 데이터를 보낼 수밖에 없습니다. 이것은 분음 기호를 제거하는 방법에 대한 게시물입니다. http://stackoverflow.com/questions/249087/how-do-i-remove-diacritics-accents-from-a-string-in-net – Paparazzi

답변

0

문자열 연결을 통해 XML을 생성하는 것 같습니다. XML 출력을 만들려면 XmlWriter을 사용해야합니다. 비 ASCII 문자, XML 엔터티 및 기타 많은 것들의 올바른 인코딩을 처리합니다.

그렇지 않은 경우 xml이 올바르게 작성되고 xml 파싱 코드에 문제가 있습니다.

+0

XML은 webservice ... 데이터 세트를 선언하고 테이블을 가리키면 webservice는 해당 데이터 세트를 반환합니다 (자동으로 XML로 변환). 소비자는 데이터 셋을 선언하고이를 웹 서비스에 지정하여 자동으로 XML을 데이터 셋으로 변환합니다. 실제로 XML을 직접 다루지는 않습니다. 오히려 .NET은 XML을 생성하고이를 백엔드에서 사용합니다. –

+0

정확히 어떤 예외가 있습니까? – edokan

+0

텍스트 내용에 유효하지 않은 문자가 있습니다. '. 핸들이 0 인 준비된 문을 찾을 수 없습니다. 핸들이 0 인 준비된 문을 찾을 수 없습니다. sp_xml_removedocument : 매개 변수 번호 1에 제공된 값이 유효하지 않습니다. XML 구문 분석 오류 0xc00ce508이 XML 텍스트 " Mar"근처의 줄 번호 111285에서 발생했습니다. 명세서가 종료되었습니다. –