我有一个程序会在崩溃的情况下向我报告错误/堆栈跟踪,并且用户希望发送它。堆栈跟踪损坏字符
偶尔我会收到错误消息中的奇怪字符以及堆栈跟踪,如下所示。
ファイルã¾ãŸã¯ã‚¢ã‚»ãƒ³ãƒ–リ 'Interop.iTunesLib, Version=1.11.0.0, Culture=neutral, PublicKeyToken=null'ã€ã¾ãŸã¯ãã®ä¾å˜é–¢ä¿‚ã® 1 ã¤ãŒèªã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸã€‚指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。
stack trace
------------------------------------------------------
å ´æ‰€ STLib.TInfo.Init(Form f)
å ´æ‰€ STLib.FormMain..ctor() å ´æ‰€ C:\repo_sync\ST\FormMain.cs:è¡Œ 37
å ´æ‰€ STLib.Program.Main() å ´æ‰€ C:\repo_sync\ST\Program.cs:è¡Œ 54
我的代码,构建了堆栈跟踪看起来像这样
private static void GlobalThreadExceptionHandler(object sender, System.Threading.ThreadExceptionEventArgs e)
{
...
String stackTrace = "";
Exception currentEx = e;
do
{
stackTrace += string.Format("\r\n{0}", currentEx.Message);
stackTrace += "\r\n------------------------------------------------------";
stackTrace += string.Format("\r\n{0}", currentEx.StackTrace);
currentEx = currentEx.InnerException;
if (currentEx != null)
{
stackTrace += "\r\nCaused by";
}
}
while (currentEx != null);
.....
}
我想大概有这样做机器的非英语语言,可有人请告知我在此以什么错在这里..
添加后汉斯Pasant的评论
我有以下代码的堆栈跟踪字节转换发布到网络之前..
byte[] postdata = System.Text.Encoding.UTF8.GetBytes(stackTrace)
我使用这里
Multipart forms from C# client张贴由布赖恩格林斯蒂德
可能会导致此问题的内存损坏。这一直在发生吗? – Oded
不是所有的机器,但有时当我得到报告,他们包含奇怪的字符 – Ahmed
当我来自世界的非拉丁地区(例如阿拉伯)的用户不时报告我的错误,我也会不时。我只是假装我的字体不能正确显示这些字符。应该与实际的错误无关。另一种选择可能是某种混淆器。 –