C#에서는 텍스트 파일에서 SQL 문을 삽입 한 다음 ADO.NET을 사용하여 데이터베이스에서 실행하려고합니다. 일부 쿼리에는 그리스 문자 중 하나가 포함됩니다. 특히, 마이크로 (usec) 동안 사용되는 Mu (funky looking u). 문제는 물음표가 실제로 데이터베이스에 삽입되고 있다는 것입니다 (? sec). 그러나 디버거가 다이아몬드 내부에 물음표를 표시하고 있기 때문에 문제가 텍스트 파일을 읽는 중임을 느끼고 있습니다. StreamReader의 ReadLine 메서드를 사용하고 있습니다. 내가 도대체 뭘 잘못하고있는 겁니까?파일에서 특수 문자를 읽으려면 어떻게해야합니까?
2
A
답변
4
문제는 파일을 읽을 때 잘못된 인코딩을 사용한다는 것을 거의 확실합니다. 텍스트 파일의 인코딩이 실제로 무엇인지 알고 있습니까? 대부분의 .NET API는 기본적으로 UTF-8을 사용하지만 파일 은이 Encoding.Default로 표시되는 운영 체제의 기본 인코딩이 될 수 있습니다. 이 시도 :
using (StreamReader reader = new StreamReader(filename, Encoding.Default))
{
...
}
나는 또한 강하게 당신이 그것을 데이터베이스를 건드리지 않고 작업을 얻을려고하는 것이 좋습니다. 그들의 유니 코드 인코딩의 관점에서 문자열의 문자를 출력 파일에 읽기 :
public static void DumpString(string text)
{
Console.WriteLine("Text: '{0}'", text);
foreach (char c in text)
{
Console.WriteLine("{0}: U+{1:x4}", c, (int) c);
}
}
을이 올바른 결과, 다음 데이터베이스에 삽입하려고를 제공합니다. 그런 식으로, 데이터베이스가 여전히 "잘못"된 것처럼 보이면 파일 액세스 대신 데이터베이스 액세스로 문제가 있음을 알 수 있습니다.
2
당신은 세 가지를 확인해야합니다
- 당신이 위해 StreamReader
- 데이터베이스 서버의 열 유형 (NVARCHAR보다는 VARCHAR)에 대한 효과
- 데이터 정렬 열 때 사용되는 인코딩 열
이 중 하나라도 틀리면 DB에서 데이터를 읽을 때 잘못된 값을 얻게됩니다.
관련 문제
- 1. 파일에서 입력을 읽으려면 어떻게해야합니까?
- 2. Java의 파일에서 숫자를 읽으려면 어떻게해야합니까?
- 3. 특수 문자를 삭제하려면 어떻게해야합니까?
- 4. JSONP 파일에서 특수 문자를 올바르게 읽지 못합니다.
- 5. Perl의 바이너리 파일에서 부호없는 int를 읽으려면 어떻게해야합니까?
- 6. PNG 파일에서 임의의 청크를 읽으려면 어떻게해야합니까?
- 7. Java로 Zip 파일에서 메모리로 파일을 읽으려면 어떻게해야합니까?
- 8. 문자열의 끝에서 특수 문자를 제거하려면 어떻게해야합니까?
- 9. XSL 변환에서 특수 문자를 사용하려면 어떻게해야합니까?
- 10. 래퍼 스크립트의 vcproj (2008) 파일에서 OutputDirectory 속성을 읽으려면 어떻게해야합니까?
- 11. 특수 문자를 표시하는 방법
- 12. 어떻게 특수 문자를 탈출?
- 13. 특수 문자를 이스케이프 처리합니다.
- 14. 텍스트 파일에서 특수 문자를 제거하는 방법은 무엇입니까? (* nix)
- 15. Perl을 사용하여 WinNT 이식 가능 실행 파일에서 헤더를 읽으려면 어떻게해야합니까?
- 16. Java를 사용하여 Linked List의 텍스트 파일에서 문자열을 읽으려면 어떻게해야합니까?
- 17. Java ImageIO : DataBufferFloat를 사용하도록 파일에서 BufferedImage를 읽으려면 어떻게해야합니까?
- 18. C++의 텍스트 파일에서 긴 줄을 읽으려면 어떻게해야합니까?
- 19. .inf 파일을 읽으려면 어떻게해야합니까?
- 20. HttpResponse에서 bytearray를 읽으려면 어떻게해야합니까?
- 21. Node.js에서 파일을 읽으려면 어떻게해야합니까?
- 22. Ruby로 파일을 읽으려면 어떻게해야합니까?
- 23. .pls 파일을 읽으려면 어떻게해야합니까?
- 24. J2ME에서 문자열을 읽으려면 어떻게해야합니까?
- 25. CodeIgniter에서 QueryString을 읽으려면 어떻게해야합니까?
- 26. JavaScript로 XML을 읽으려면 어떻게해야합니까?
- 27. 특수 문자없이 파일에서 읽기
- 28. wfstream에서 이진 데이터를 읽으려면 어떻게해야합니까?
- 29. 특수 문자를 포함하고 파일에서 읽은 문자열을 인쇄하는 방법은 무엇입니까? 특수 문자없이 인쇄하는 방법?
- 30. 특수 문자를 DB2 데이터베이스에 삽입하십시오.
트릭을 수행하는 것처럼 보였습니다. 그러나 나는이 모든 인코딩 된 것을 이해할 수 있을지 확신하지 못합니다. 기본 인코딩이 다른 다른 사용자가 파일을 수정 한 다음 내 앱을 새 파일로 다시 실행하려고하면 어떻게 될까요? 더 이상 작동하지 않습니까? 대신 Encoding.UTF8을 사용해야합니까? – bsh152s
UTF-8을 사용하는 것이 훨씬 더 좋은 생각입니다.하지만 인코딩이 실제로 무엇인지 항상 알고 있어야합니다. 파일을 항상 UTF-8로 저장할 수 있습니까? –