gpt4 book ai didi

C#:将 byte[] 转换为 UTF8 编码的字符串

转载 作者:可可西里 更新时间:2023-11-01 09:17:09 25 4
gpt4 key购买 nike

我正在使用一个名为 EXIFextractor 的库从图像中提取元数据信息。该库部分使用 System.Drawing.Imaging.PropertyItem 来完成所有艰苦的工作。根据 Microsoft 文档,PropertyItem 中的某些数据(例如图像详细信息等)是作为存储在 byte[] 中的 ASCII 字符串获取的。

我的问题是国际字符(å、ä、ö 等)被删除并替换为问号。当我调试代码时,很明显 byte[] 是 UTF-8 的表示。

我想将 byte[] 解析为 UTF8 字符串,如何在不丢失任何信息的情况下执行此操作?

提前致谢!


更新:

我被要求提供我的代码片段:

第一个片段来 self 使用的类,即由 Asim Goheer 编写的 EXIFextractor.cs

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 在下面的回答中对他的结论是正确的。

最佳答案

string yourText = System.Text.Encoding.UTF8.GetString(yourByteArray);

关于C#:将 byte[] 转换为 UTF8 编码的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3406169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com