2016-08-09 5 views
2

SQL Server 2014 Express (로컬) 서버에서 복원 한 라오스에서 사용 된 데이터베이스의 매우 큰 백업 (.BAK)을 받았습니다. . 라오 텍스트가 들어있는 컬럼이 많은 데이터베이스입니다. 데이터베이스를 사용하는 사람들이 클라이언트 응용 프로그램 (일종의 태국어 회계 프로그램)을 통해 데이터베이스에 액세스 할 때 그들은 표시 글꼴을 라오 문자가있는 유니 코드 글꼴 인 Saysettha로 설정할 때 올바르게 표시된 모든 라오 데이터를 볼 수 있습니다.라오 어 언어로 SQL Server 2014에서 데이터 내보내기

그러나 SSMS에서 내보내기 프로세스가 단순하고 반복 가능해야하므로 테이블의 데이터를 간단한 텍스트 또는 csv 파일을 통해 내보내려고하는데 데이터가 올바르게 표시되지 않습니다. SSMS에서 테이블 쿼리를 수행 할 때조차도 아닙니다.

나는 인코딩/데이터 정렬에 문제가 있음을 알고 있습니다. 열은 VARCHAR 열에 저장됩니다. 문제를 해결하지 못하는 NVARCHAR 열로 캐스팅을 시도했습니다. 또한 열을 라오 어 대조에 대조하려고했습니다 (서버 데이터 정렬은 백업 복원 후 Thai_CI_AS로 설정 됨).

SSMS trial

I는 다른 부호화와 CSV 및 TXT 파일로 출력 테이블을 저장하려하지만, 예를 들어 그들을 열면 메모장 + 나는 잘못된 문자를 보았습니다.

불행히도 클라이언트 소프트웨어가 내 랩톱에서 실행되고 있지 않기 때문에 텍스트가 어떻게 보이는지 샘플이 없습니다.

이상적으로 UTF-8 인코딩으로 열을 내보낼 수 있습니다.

답변

0

일반적으로 라오 어 텍스트는 UTF-8 인코딩, UTF-16 인코딩 또는 Code page 1133 인코딩으로 저장됩니다.

보기 응용 프로그램에서 데이터를 저장할 때 사용한 것과 동일한 인코딩을 사용하면 문제가없는 것처럼 보입니다. 불행하게도 때때로보기 응용 프로그램에 사용 된 인코딩이 정확히 알려지지 않았으므로 "유용하게"시도하여 guess을 시도하고 때로는 잘못 추측합니다. 일반적으로 잘못된 생각은 사람이 디스플레이를 보는 것에서 분명합니다. 문자는 올바른 언어로 된 것이 아닙니다.

단순한 원시 바이트를 내보내는 것이 아니라 데이터베이스에서 데이터를 내보내라고 응용 프로그램에 지시하면 응용 프로그램에서 데이터를 다른 인코딩으로 "유용하게"변환 할 수 있습니다. 응용 프로그램에서 데이터베이스의 실제 데이터 인코딩을 알고있는 경우 내보내기가 잘되는 동안 UTF-16 또는 UTF-8로 변환하면됩니다. 그렇지 않으면 내 보낸 데이터가 일반적으로 엉망이며 사용할 수 없습니다.

때로는 가장 어려운 문제는 시스템이 실제로 올바르게 작동하는 것이지만, 나는 (잘못) 문제가 있다고 생각합니다. 때때로 이것은 문제를보기 위해 사용하고있는 도구의 결함 때문에 발생합니다. 대부분 Lao 문자를 볼 때까지 메모장 + +에서 라오 문자를 보거나 메모장 ++에서 인코딩을 변경할 수 있습니다. 텍스트 또는 csv 파일의 데이터와 메모장 ++ guessed 또는 Encoding -> Encode으로 설정 한 인코딩이 의심됩니다 옳은.

데이터가 실제로 데이터베이스에 저장되고 처리되고, 내보내지고, 제대로 표시되고 클라이언트 응용 프로그램에서 올바르게 표시되는지 확인할 수있는 방법이 있지만 메모장이나 SSMS의 렌더링 결함이 있습니다. 어떤 악센트 부호를 잘못 mangling합니까?

+1

이것은 내가 필요한 도움이었습니다. 필자는 문자 형식 ("-c")을 사용하고 Microsoft 코드 페이지 [874] (https://en.wikipedia.org/wiki/ISO/IEC_8859)를 명시 적으로 사용하여 대량 내보내기를 통해 데이터를 내보낼 수있었습니다. -11) (코드 페이지 1133을 통합 한 "-C 874"추가). ASCII 형식이지만 내 보낸 CSV/TXT 파일을 읽을 수 있습니다. UTF-8로 내보내기가 이제 가능합니다. – robberth