2011-11-08 2 views
3

내 응용 프로그램에서 사용자가 사이트에 업로드하는 파일에서 일부 텍스트를 데이터베이스로 가져옵니다. 데이터베이스 SQL Server 2005에서 텍스트는 nvarchar 열에 저장됩니다. EF와 L2SQL을 사용합니다.문자열 인코딩을 검사 할 수 있습니까?

사용자는 UTF-8로 파일을 만들어야하지만 불행히도 일부 파일은 다른 인코딩을 사용하는 것으로 나타났습니다. 결과에서 일부 문자가 유효하지 않습니다.

어떤 레코드가 유효한지 알고 싶습니다. utf8checker을 사용합니다. 원본 파일에서는 잘 작동하지만 데이터베이스에서 텍스트를 가져 오는 경우 IsUtf8 메서드는 항상 true를 반환합니다.

+1

"from database"- 업로드 후 모든 코드가 다시 인코딩되기 전에 확인하십시오. 데이터베이스에서 –

+0

은 varbinary입니까? nvarchar? 영상? varchar? 본문? ntext? –

+0

데이터베이스에서 해당 nvarchar – jlp

답변

1

SQL 서버는 항상 유니 코드를 UCS-2로 저장한다고 생각합니다. 따라서 읽기 시간보다는 삽입 시간에 데이터가 올바른 인코딩을 갖도록해야합니다. 그렇지 않으면 SQL 서버가 당신을 위해 그것을 무너 뜨릴 것이고 데이터가 삽입 된 후에 원래의 인코딩을 결정하는 방법이 없다고 생각할 것입니다 - 아마도 레코드 자체에 다른 컬럼 또는 처음 몇 문자와 같은 인코딩 정의가 없으면 귀하의 데이터 요소. 예 : - XML은 이런 식으로합니다.

희망이 도움이됩니다.

관련 문제