C#Wierd从byte []转换后的字符串行为。 (Exif数据)

时间:2018-01-21 13:54:30

标签: c# image exif

所以我正在制作一个帮助您排序和查看图像的小程序。 我目前正在尝试加载Exif数据并显示它。 转换和加载有效,但问题是当我尝试连接相机和制造商的名称时,标签只显示第一个字符串。

编辑: 感谢@Kevin Gosse

找到了问题

2 个答案:

答案 0 :(得分:0)

事实证明,String包含一个空字符\0,导致标签在没有后续文本的情况下呈现。我通过删除字符串的最后一个字符来修复它。 (@KevinGosse在评论中提出的解决方案。)

答案 1 :(得分:0)

确保字符串(尤其是第一个字符串)不以新行字符结尾。最安全的方法是使用TrimEnd()

将这些明确地提取到单独的变量中,检查有效性的值,然后构造逻辑的其余部分也很有用:

// data gathering & pre-processing
string makerName = data.MakerName.TrimEnd('\r', '\n');
string camModel = data.CameraModel.TrimEnd('\r', '\n');

//build UI text
string labelText = makerName + " - " + camModel;

//update UI
theLabel.Text = labelText;