EXIFextractor이라는 라이브러리를 사용하여 이미지에서 메타 데이터 정보를 추출합니다. 이 lib 부분은 System.Drawing.Imaging.PropertyItem을 사용하여 모든 노력을 다하고 있습니다. 이미지 세부 사항 등의 PropertyItem의 일부 데이터는 Microsoft 설명서에 따라 바이트 []로 저장된 ASCII 문자열로 페치됩니다.C# : 바이트 []을 UTF8로 인코딩 된 문자열로 변환
제 문제는 국제 문자 (å, ä, ö, 등등)를 삭제하고 물음표로 바꾸는 것입니다. 코드를 디버깅 할 때 byte []가 UTF-8 표현임을 알 수 있습니다.
바이트 []을 UTF8 문자열로 구문 분석하고 싶습니다. 프로세스의 정보를 잃어 버리지 않고 어떻게 할 수 있습니까? 사전에
감사합니다!
업데이트 : 첫 번째 조각은 내가 사용하는 클래스,이 작성한 즉 EXIFextractor.cs에서입니다
: 내 코드에서 조각을 제공하기 위해 요청을받은
Asim Goheer
foreach(System.Drawing.Imaging.PropertyItem p in parr)
{
string v = "";
// ...
else if(p.Type == 0x2)
{
// string
v = ascii.GetString(p.Value);
}
그리고 이것은 내 코드를 처리하기 위해 최선을 다합니다. 그는 위의 결과.
try {
EXIFextractor exif = new EXIFextractor(ref bmp, "");
object o;
if ((o = exif["Image Description"]) != null)
MediaFile.Description = Tools.UTF8Encode(o.ToString());
는 또한 데이터에서, ä, ö 내 소중한 å을 받고 다른 몇 가지 방법을 시도했지만 아무것도 트릭을 할 것 같다. 나는 Hans Passant가 그의 대답에서 그의 결론에 대해 아래에 있다고 생각하기 시작했다.
ASCII 인코딩을 사용하여 정보를 읽으면 비 ASCII 문자가 올바르게 읽히지 않습니다. 인코딩을 가진이 문자 읽기와 바이트 배열 쓰기는 올바르게 작동하지 않습니다. 이 경우에 해당하는 문서에 연결할 수 있습니까? –
다른 하이퍼 링크를 게시 할 수있는 경우 여기에 있습니다. http://msdn.microsoft.com/en-us/library/system.drawing.imaging.propertyitem.type.aspx – dotmartin