C# 如何将 ASCII Ledger-CLI 输出转换为 UTF-8 输入以进行进一步处理
C# How to convert ASCII Ledger-CLI output to UTF-8 input for further processing
我必须创建一个 C# 核心命令行应用程序来替换和扩展工作 python 脚本。
基本上,第一步是捕获 Ledger 命令行会计程序的输出并进一步处理它。我相信输出是 ASCII:€
显示为 Γé¼
。
python 脚本使用简单的 output.decode("utf-8")
将输出转换为 UTF-8,这将所有 Γé¼
很好地转换为 €
我的 C# 程序捕获变量中的输出,我一直在网上搜索一个简单的方法来将它转换为 Dotnet 核心中的 UTF-8(即实现 python 功能),但我还没有找到一个工作。
这是我捕获输出的方式:
public string Fetch(string naam)
{
using (Process p = new Process())
{
p.StartInfo.FileName = @"c:\ProgramData\chocolatey\bin\ledger.exe";
p.StartInfo.Arguments = $"-f c:\Users\guivho\ledger\boekhouding.ledger -U csv t:{naam} --sort date";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string ouput = p.StandardOutput.ReadToEnd();
p.WaitForExit();
return ouput;
}
}
如有任何帮助或建议,请告知和 TIA。
问题不在分类帐程序的输出中。
通过在调用 Ledger 之前将 Console.OutputEncoding = System.Text.Encoding.UTF8;
作为程序 Main 函数的第一条指令解决了这个问题(这与问题完全无关):
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
...
}
感谢大家的帮助,祝大家新年快乐!
我必须创建一个 C# 核心命令行应用程序来替换和扩展工作 python 脚本。
基本上,第一步是捕获 Ledger 命令行会计程序的输出并进一步处理它。我相信输出是 ASCII:€
显示为 Γé¼
。
python 脚本使用简单的 output.decode("utf-8")
将输出转换为 UTF-8,这将所有 Γé¼
很好地转换为 €
我的 C# 程序捕获变量中的输出,我一直在网上搜索一个简单的方法来将它转换为 Dotnet 核心中的 UTF-8(即实现 python 功能),但我还没有找到一个工作。
这是我捕获输出的方式:
public string Fetch(string naam)
{
using (Process p = new Process())
{
p.StartInfo.FileName = @"c:\ProgramData\chocolatey\bin\ledger.exe";
p.StartInfo.Arguments = $"-f c:\Users\guivho\ledger\boekhouding.ledger -U csv t:{naam} --sort date";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string ouput = p.StandardOutput.ReadToEnd();
p.WaitForExit();
return ouput;
}
}
如有任何帮助或建议,请告知和 TIA。
问题不在分类帐程序的输出中。
通过在调用 Ledger 之前将 Console.OutputEncoding = System.Text.Encoding.UTF8;
作为程序 Main 函数的第一条指令解决了这个问题(这与问题完全无关):
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
...
}
感谢大家的帮助,祝大家新年快乐!