中文字符编码图片EXIF标签?

时间:2016-12-30 05:16:01

标签: c# image encoding exif

我有一个程序写入图片的EXIF标签,一切正常,直到遇到一些汉字。根据标签,它可以完美地工作,也可以不工作。

using (var file = Image.FromFile(tempPath)){
            // Works fine with Chinese characters
            var propTitle = file.PropertyItems[0];
            propTitle.Id = 0x010E;
            propTitle.Type = 2;
            propTitle.Value = Encoding.UTF8.GetBytes($"{title}\0");
            propTitle.Len = propTitle.Value.Length;
            file.SetPropertyItem(propTitle);

            // Doesn't work
            var propTags = file.PropertyItems[0];
            propTags.Id = 0x9286;
            propTags.Type = 2;
            propTags.Value = Encoding.UTF8.GetBytes($"{tags}\0");
            propTags.Len = propTags.Value.Length;
            file.SetPropertyItem(propTags);

            file.Save(finalPath);}

当我去检查Windows中的标签时,最后一个标签(用于用户评论)显示为:

  

é«〜E>“;城å¸;é«变样¥¼å¤§åŽ|; AA>好不°æ¹¾;夜æ™SCS“AE™¯è§;

虽然其他标签(例如标题)显示正常:

  

夜晚

但是如果我将相同的字符串保存到另一个标签,它将在Windows资源管理器中显示正常:

  

高雄;城市;高楼大厦;中国台湾;夜晚的景观;

我一度认为用户评论标签没有正确处理中文字符,但我可以手动将它们添加到文件中,并且工作正常。

我做错了什么?

0 个答案:

没有答案