2010-02-15 5 views
1

데이터베이스에서 필드 집합을 가져 와서 RTF 기반 템플릿 파일 세트의 palceholders와 병합하는 사용자 지정 CRM 웹 응용 프로그램 (2003 년경 VB.Net 이전 버전)에 함수가 있습니다. 이들은 병합 된 문자와 문서를 생성합니다. 이 코드는 본질적으로 RTF 템플릿 파일의 각 줄을 반복하고 자리 표시 자 값의 인스턴스를 데이터베이스 레코드의 텍스트로 바꿉니다. 내가 겪고있는 문제는 사용자가 특정 유형의 아포스트로피를 결과 RTF 파일에서 올바르게 렌더링되지 않는 웹 앱 (따라서 데이터베이스)에 붙여 넣었다는 것입니다. 그것은 다음과 같이 렌더링됩니다.RTF의 아포스트로피 문제

코드에서이 잘못된 아포스트로피를 찾아서 올바른 것으로 바꾸는 방법이 필요합니다. 불행히도 잘못된 아포스트로피를 Visual Studio 편집기에 붙여 넣으면 올바른 아포스트로피로 변환됩니다. 그래서 나는이 잘못된 아포스트로피의 가치를 표현할 다른 방법이 필요하다. 불행히도 나는 유니 코드와 다른 인코딩에 대해 많이 알지 못하므로이 문제에 도움을 요청하고 있습니다.

아이디어가 있으십니까?

답변

1

문자가 무엇인지 알아 내려고한다면 ultraedit과 같은 텍스트 편집기에 붙여 넣으십시오. 실제 16 진수 바이트를보기 위해 뒤집을 수있는 16 진수 모드가 있습니다. 당신은 당신이 VB에서 이런 일을 할 거라고 문자를 알아 냈어요 일단 교체 할하기 위해

, 텍스트를 사용하여 쉽게 파악하지 못할 수 있습니다

text.Replace(ChrW(2001), "'") 

주 왜냐하면 클립 보드에서 붙여 넣기로 엉망이 될 수도 있기 때문입니다. 코드에서 ascii 값의 일부 디버그를 인쇄 할 수도 있습니다. AscW 함수를 사용하여이를 수행 할 수 있습니다.

실제로 스트림을 작성할 때 사용할 올바른 인코딩을 지정하는 경우가있을 수 있습니다. StreamWriter를 사용한다고 가정하면 생성자에 지정할 수 있습니다. 나는 당신이 실제로 당신의 요구 사항에 따라 ASCII를 원한다고 생각하고 있습니다.

oWriter = New System.IO.StreamWriter(path, False, System.Text.Encoding.ASCII) 
+0

코드는 다음과 같은 : somestring = somestring.Replace (" '", "'") 다른 아포스트로피가 제대로 표시됩니다 경우 잘 모르겠어요하지만 기본적으로 내가 교체해야 두 번째와 첫 번째 (dodgy) 아포스트로피. 그러나이 코드 줄을 VS에 입력하면 양쪽에 동일한 아포스트로피가 사용되므로 작동하지 않습니다. 다음과 같은 코드 행에 16 진수 문자를 사용하는 예제를 제공 할 수 있습니까? 감사. –

+0

자세한 내용으로 답변을 업데이트했습니다. –

+0

Brilliant, thanks 콜린. 참고로 나는 다음을 사용했다 : ChrW (& H2018) 이 페이지에서 가능한 아포스트로피 목록을 얻었습니다 : http://www.dotnet247.com/247reference/msgs/51/259026.aspx –

0

아마도 8 비트 범위 (> 255)에서 문자를 인코딩하려고합니다.

wikipedia article에 따라 \ uNNNN을 사용하면됩니다.

관련 문제