BeginOutputReadLine和编码

时间:2016-04-28 14:42:06

标签: c# process io-redirection

我正在使用Process.BeginOutputReadLine()通过事件向StringBuilder发送文本行。但是,BeginOutputReadLine()无法识别输出编码。我启动的进程以UCS-2 LE格式返回字符串。因此BeginOutputReadLine()会返回类似"\0T\0e\0s\0t"的字符串。以前我使用过具有自动检测编码功能的StandardOutput.ReadToEnd() 文档说StreamReader.Read(...)将使用第一个调用来确定编码(因此将设置StreamReader.CurrentEncoding)。 BeginOutputReadLine() AsyncStreamReader创建内部Process.StandardOutput.CurrentEncoding并从<script> $(document).ready(function(){ $('#submit').on('click', function(){ $.ajax({ type: 'POST', async: false, url: 'data.php', data:{ "username":$('input[name=username]:checked', '#myForm').val(), "profession": $('input[name=profession]:checked', '#myForm').val() }, success: function(response) { } }).error(function(request, status, error){ console.log(e); }); }); }); </script> 对其ctor进行编码 - 尚未检测到。

如何避免此问题?我需要在进程运行时实时获取输出。尝试创建逐行读取的Task,引发事件以将数据传递给StringBuilder,但最后它会打击:/

0 个答案:

没有答案