Java PHP Exec和命令提示符(cmd)中的不同编码

Java PHP Exec和命令提示符(cmd)中的不同编码,java,php,encoding,utf-8,cmd,Java,Php,Encoding,Utf 8,Cmd,我有一个简单的PHP程序,它执行一个jar,输出一个日语单词: <?php exec("java -jar PixivClipboardPostGet.jar", $output); $text = $output[0]; echo $text; ?> 如果我在cmd中执行它,它将打印正确的日语单词,带有chcp 932: 日本語 但当我通过PHP Exec执行时,输出如下: “ú–{Œê 我尝试了多种方法来更改PHP中的编码,以便它能够正确输出文本: 尝试1: header(

我有一个简单的PHP程序,它执行一个jar,输出一个日语单词:

<?php
exec("java -jar PixivClipboardPostGet.jar", $output);
$text = $output[0];
echo $text;
?>
如果我在cmd中执行它,它将打印正确的日语单词,带有chcp 932:

日本語
但当我通过PHP Exec执行时,输出如下:

“ú–{Œê
我尝试了多种方法来更改PHP中的编码,以便它能够正确输出文本:

尝试1:

header('content-type: text/html; charset=utf-8');
输出:

���{��
���{��
尝试2:

$locale='ja-JP.utf-8';
setlocale(LC_ALL,$locale);
putenv('LC_ALL='.$locale);
输出:

���{��
���{��
我试过exec('chcp')只是为了知道exec使用的代码页,它正确地输出了932,我为cmd设置的编码

有谁能启发我解决这个问题吗?提前谢谢

我遇到了中文C#的问题,通过参数和响应的base64编码解决了这个问题

PHP

C#

我遇到了中文C#的问题,并通过参数和响应的base64编码解决了这个问题

PHP

C#

// Decode the argument to UTF-8
byte[] arg = Convert.FromBase64String(input);
string foo = Encoding.UTF8.GetString(farg);

...

// Output UTF-8 base64 string
byte[] string = System.Text.Encoding.UTF8.GetBytes(result);
Console.WriteLine(HttpUtility.UrlEncode(Convert.ToBase64String(string)));