PHP - 如何处理从HTTP POST接收的unicode,以便在HTML中显示它们

How to convert something like this

\xe6\xa6\x82\xe8\xa6\x81 \xe3\x83\xbb\xe3\x82\xb0\xe3\x83\xaa\xe3\x83\xbc\xe3\x81\xae\xe3\x82\xa8\xe3\x83\xb3\xe3\x82\xb8\xe3\x83\x8b\xe3\x82\xa2\xe3\x81\xab\xe5\xbf\x9c\xe5\x8b\x9f\xe3\x81\x97\xe3\x81\xa6\xe3\x81\xbf\xe3\x81\x9f\xe3\x81\x84\xe3\x81\x8c\xe3\x80\x81\xe5\xbf\x9c\xe5\x8b\x9f\xe5\x89\x8d\xe3\x81\xab\xe8\x87\xaa\xe5\x88\x86\xe3\x81\xae\xe5\xae\x9f\xe5\x8a\x9b\xe3\x82\x92\xe8\xa9\xa6\xe3\x81\x97\xe3\x81\xa6\xe3\x81\xbf\xe3\x81\x9f\xe3\x81\x84\xe3\x80\x82 \xe3\x83\xbb\xe5\x9c\xb0\xe6\x96\xb9\xe3\x81\xab\xe4\xbd\x8f\xe3\x82\x93\xe3\x81\xa7\xe3\x81\x84\xe3\x82\x8b\xe3\x81\xae\xe3\x81\xa7\xe9\x9d\xa2\xe6\x8e\xa5\xe5\x9b\x9e\xe6\x95\xb0\xe3\x81\x8c\xe5\xb0\x91\xe3\x81\xaa\xe3\x81\x84\xe6\x96\xb9\xe3\x81\x8c\xe3\x81\x82\xe3\x82\x8a\xe3\x81\x8c\xe3\x81\x9f\xe3\x81\x84\xe3\x80\x82 \xe3\x83\xbb\xe9\x9d\xa2\xe6\x8e\xa5\xe3\x81\xaf\xe8\x8b\xa6\xe6\x89\x8b\xe3\x81\xa0\xe3\x81\x8c\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\x9f\xe3\x83\xb3\xe3\x82\xb0\xe3\x81\xab\xe3\x81\xaf\xe8\x87\xaa\xe4\xbf\xa1\xe3\x81\x8c\xe3\x81\x82\xe3\x82\x8b\xe3\x80\x82\xe3\x81\xaf\xe3\x80\x81\xe3\x81\x93\xe3\x81\xae\xe3\x82\x88\xe3\x81\x86\xe3\x81\xaa\xe6\x96\xb9\xe3\x80\x85\xe3\x81\xae\xe3\x81\x94\xe8\xa6\x81\xe6\x9c\x9b\xe3\x81\xab\xe3\x81\x8a\xe5\xbf\x9c\xe3\x81\x88\xe3\x81\x99\xe3\x82\x8b\xe3\x81\x9f\xe3\x82\x81\xe3\x81\xab\xe4\xbd\x9c\xe3\x82\x89\xe3\x82\x8c\xe3\x81\x9f\xe6\x96\xb0\xe3\x81\x97\xe3\x81\x84\xe6\x8e\xa1\xe7\x94\xa8\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0\xe3\x81\xa7\xe3\x81\x99\xe3\x80\x82 \xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\x9f\xe3\x83\xb3\xe3\x82\xb0\xe3\x82\xb9\xe3\x82\xad\xe3\x83\xab\xe3\x82\x92\xe8\xa9\x95\xe4\xbe\xa1\xe3\x81\x99\xe3\x82\x8b\xef\xbc\x91\xe6\xac\xa1\xe9\x9d\xa2\xe6\x8e\xa5\xe3\x82\x92\xe3\x83\x91\xe3\x82\xb9\xe3\x81\xa7\xe3\x81\x8d\xe3\x81\xbe\xe3\x81\x99\xe3\x81\xae\xe3\x81\xa7\xe5\x8a\xb9\xe7\x8e\x87\xe7\x9a\x84\xe3\x81\xaa\xe8\xbb\xa2\xe8\x81\xb7\xe6\xb4\xbb\xe5\x8b\x95\xe3\x82\x92\xe8\xa1\x8c\xe3\x81\xa3\xe3\x81\xa6\xe9\xa0\x82\xe3\x81\x91\xe3\x81\xbe\xe3\x81\x99\xe3\x80\x82 \xe3\x82\x82\xe3\x81\xa1\xe3\x82\x8d\xe3\x82\x93\xe5\xad\xa6\xe7\x94\x9f\xe3\x81\xae\xe7\x9a\x86\xe3\x81\x95\xe3\x82\x93\xe3\x81\xae\xe3\x83\x81\xe3\x83\xa3\xe3\x83\xac\xe3\x83\xb3\xe3\x82\xb8\xe3\x82\x82\xe3\x81\x8a\xe5\xbe\x85\xe3\x81\xa1\xe3\x81\x97\xe3\x81\xa6\xe3\x81\x8a\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x99\xe3\x80\x82

which i received in HTTP POST to show them properly on HTML web page.

I have no idea what I am looking at but i think i can be converted to something which look in this ☺ format.

How can i do this in PHP

If you send the appropriate character set encoding with your HTTP response, you don't have to do anything to the data, the browser should properly decode it as Japanese text.

Example:

<?php

header('Content-Type: text/html; charset=UTF-8');
$var = "\xe6\xa6\x82\xe8\xa6\x81
\xe3\x83\xbb\xe3\x82\xb0\xe3\x83\xaa\xe3\x83\xbc\xe3\x81\xae\xe3\x82\xa8\xe3\x83\xb3\xe3\x82\xb8\xe3\x83\x8b\xe3\x82\xa2\xe3\x81\xab\xe5\xbf\x9c\xe5\x8b\x9f\xe3\x81\x97\xe3\x81\xa6\xe3\x81\xbf\xe3\x81\x9f\xe3\x81\x84\xe3\x81\x8c\xe3\x80\x81\xe5\xbf\x9c\xe5\x8b\x9f\xe5\x89\x8d\xe3\x81\xab\xe8\x87\xaa\xe5\x88\x86\xe3\x81\xae\xe5\xae\x9f\xe5\x8a\x9b\xe3\x82\x92\xe8\xa9\xa6\xe3\x81\x97\xe3\x81\xa6\xe3\x81\xbf\xe3\x81\x9f\xe3\x81\x84\xe3\x80\x82
\xe3\x83\xbb\xe5\x9c\xb0\xe6\x96\xb9\xe3\x81\xab\xe4\xbd\x8f\xe3\x82\x93\xe3\x81\xa7\xe3\x81\x84\xe3\x82\x8b\xe3\x81\xae\xe3\x81\xa7\xe9\x9d\xa2\xe6\x8e\xa5\xe5\x9b\x9e\xe6\x95\xb0\xe3\x81\x8c\xe5\xb0\x91\xe3\x81\xaa\xe3\x81\x84\xe6\x96\xb9\xe3\x81\x8c\xe3\x81\x82\xe3\x82\x8a\xe3\x81\x8c\xe3\x81\x9f\xe3\x81\x84\xe3\x80\x82
\xe3\x83\xbb\xe9\x9d\xa2\xe6\x8e\xa5\xe3\x81\xaf\xe8\x8b\xa6\xe6\x89\x8b\xe3\x81\xa0\xe3\x81\x8c\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\x9f\xe3\x83\xb3\xe3\x82\xb0\xe3\x81\xab\xe3\x81\xaf\xe8\x87\xaa\xe4\xbf\xa1\xe3\x81\x8c\xe3\x81\x82\xe3\x82\x8b\xe3\x80\x82\xe3\x81\xaf\xe3\x80\x81\xe3\x81\x93\xe3\x81\xae\xe3\x82\x88\xe3\x81\x86\xe3\x81\xaa\xe6\x96\xb9\xe3\x80\x85\xe3\x81\xae\xe3\x81\x94\xe8\xa6\x81\xe6\x9c\x9b\xe3\x81\xab\xe3\x81\x8a\xe5\xbf\x9c\xe3\x81\x88\xe3\x81\x99\xe3\x82\x8b\xe3\x81\x9f\xe3\x82\x81\xe3\x81\xab\xe4\xbd\x9c\xe3\x82\x89\xe3\x82\x8c\xe3\x81\x9f\xe6\x96\xb0\xe3\x81\x97\xe3\x81\x84\xe6\x8e\xa1\xe7\x94\xa8\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0\xe3\x81\xa7\xe3\x81\x99\xe3\x80\x82
\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\x9f\xe3\x83\xb3\xe3\x82\xb0\xe3\x82\xb9\xe3\x82\xad\xe3\x83\xab\xe3\x82\x92\xe8\xa9\x95\xe4\xbe\xa1\xe3\x81\x99\xe3\x82\x8b\xef\xbc\x91\xe6\xac\xa1\xe9\x9d\xa2\xe6\x8e\xa5\xe3\x82\x92\xe3\x83\x91\xe3\x82\xb9\xe3\x81\xa7\xe3\x81\x8d\xe3\x81\xbe\xe3\x81\x99\xe3\x81\xae\xe3\x81\xa7\xe5\x8a\xb9\xe7\x8e\x87\xe7\x9a\x84\xe3\x81\xaa\xe8\xbb\xa2\xe8\x81\xb7\xe6\xb4\xbb\xe5\x8b\x95\xe3\x82\x92\xe8\xa1\x8c\xe3\x81\xa3\xe3\x81\xa6\xe9\xa0\x82\xe3\x81\x91\xe3\x81\xbe\xe3\x81\x99\xe3\x80\x82
\xe3\x82\x82\xe3\x81\xa1\xe3\x82\x8d\xe3\x82\x93\xe5\xad\xa6\xe7\x94\x9f\xe3\x81\xae\xe7\x9a\x86\xe3\x81\x95\xe3\x82\x93\xe3\x81\xae\xe3\x83\x81\xe3\x83\xa3\xe3\x83\xac\xe3\x83\xb3\xe3\x82\xb8\xe3\x82\x82\xe3\x81\x8a\xe5\xbe\x85\xe3\x81\xa1\xe3\x81\x97\xe3\x81\xa6\xe3\x81\x8a\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x99\xe3\x80\x82";

echo $var;

Since we send a header saying that the character encoding is UTF-8, the browser knows to decode it as such. You could also use a meta-tag to specify the charset. If the browser was set to auto-detect the code, neither option is necessary, but you can't rely on that.

I have actually no real clue why you get this as POST, but I assume that

\x82

(and the like) stands for a hexa-decimal number. To convert a whole string (ensure it's that format):

$string = eval('return "' . $thatExactInputAsGiven . '";');

$string does now contain the byte-sequence that this submission represents. However I can not tell you which encoding it is in, but probably this one-line above helps you for testing.

If you fear the eval, mind the error handling:

$string = implode('', array_map(function($v){
    $r = sscanf($v, '\x%x', $ord);
    if (!$r) throw new Exception('Invalid input.');
    return chr($ord);
}, str_split($thatExactInputAsGiven, 4)));

It looks like Japan

php > echo "\xe6\xa6\x82\xe8\xa6\x81
\xe3\x83\xbb\xe3\x82\xb0\xe3\x83\xaa\xe3\x83\xbc\xe3\x81\xae\xe3\x82\xa8\xe3\x83\xb3\xe3\x82\xb8\xe3\x83\x8b\xe3\x82\xa2\xe3\x81\xab\xe5\xbf\x9c\xe5\x8b\x9f\xe3\x81\x97\xe3\x81\xa6\xe3\x81\xbf\xe3\x81\x9f\xe3\x81\x84\xe3\x81\x8c\xe3\x80\x81\xe5\xbf\x9c\xe5\x8b\x9f\xe5\x89\x8d\xe3\x81\xab\xe8\x87\xaa\xe5\x88\x86\xe3\x81\xae\xe5\xae\x9f\xe5\x8a\x9b\xe3\x82\x92\xe8\xa9\xa6\xe3\x81\x97\xe3\x81\xa6\xe3\x81\xbf\xe3\x81\x9f\xe3\x81\x84\xe3\x80\x82
\xe3\x83\xbb\xe5\x9c\xb0\xe6\x96\xb9\xe3\x81\xab\xe4\xbd\x8f\xe3\x82\x93\xe3\x81\xa7\xe3\x81\x84\xe3\x82\x8b\xe3\x81\xae\xe3\x81\xa7\xe9\x9d\xa2\xe6\x8e\xa5\xe5\x9b\x9e\xe6\x95\xb0\xe3\x81\x8c\xe5\xb0\x91\xe3\x81\xaa\xe3\x81\x84\xe6\x96\xb9\xe3\x81\x8c\xe3\x81\x82\xe3\x82\x8a\xe3\x81\x8c\xe3\x81\x9f\xe3\x81\x84\xe3\x80\x82
\xe3\x83\xbb\xe9\x9d\xa2\xe6\x8e\xa5\xe3\x81\xaf\xe8\x8b\xa6\xe6\x89\x8b\xe3\x81\xa0\xe3\x81\x8c\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\x9f\xe3\x83\xb3\xe3\x82\xb0\xe3\x81\xab\xe3\x81\xaf\xe8\x87\xaa\xe4\xbf\xa1\xe3\x81\x8c\xe3\x81\x82\xe3\x82\x8b\xe3\x80\x82\xe3\x81\xaf\xe3\x80\x81\xe3\x81\x93\xe3\x81\xae\xe3\x82\x88\xe3\x81\x86\xe3\x81\xaa\xe6\x96\xb9\xe3\x80\x85\xe3\x81\xae\xe3\x81\x94\xe8\xa6\x81\xe6\x9c\x9b\xe3\x81\xab\xe3\x81\x8a\xe5\xbf\x9c\xe3\x81\x88\xe3\x81\x99\xe3\x82\x8b\xe3\x81\x9f\xe3\x82\x81\xe3\x81\xab\xe4\xbd\x9c\xe3\x82\x89\xe3\x82\x8c\xe3\x81\x9f\xe6\x96\xb0\xe3\x81\x97\xe3\x81\x84\xe6\x8e\xa1\xe7\x94\xa8\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0\xe3\x81\xa7\xe3\x81\x99\xe3\x80\x82
\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\x9f\xe3\x83\xb3\xe3\x82\xb0\xe3\x82\xb9\xe3\x82\xad\xe3\x83\xab\xe3\x82\x92\xe8\xa9\x95\xe4\xbe\xa1\xe3\x81\x99\xe3\x82\x8b\xef\xbc\x91\xe6\xac\xa1\xe9\x9d\xa2\xe6\x8e\xa5\xe3\x82\x92\xe3\x83\x91\xe3\x82\xb9\xe3\x81\xa7\xe3\x81\x8d\xe3\x81\xbe\xe3\x81\x99\xe3\x81\xae\xe3\x81\xa7\xe5\x8a\xb9\xe7\x8e\x87\xe7\x9a\x84\xe3\x81\xaa\xe8\xbb\xa2\xe8\x81\xb7\xe6\xb4\xbb\xe5\x8b\x95\xe3\x82\x92\xe8\xa1\x8c\xe3\x81\xa3\xe3\x81\xa6\xe9\xa0\x82\xe3\x81\x91\xe3\x81\xbe\xe3\x81\x99\xe3\x80\x82
\xe3\x82\x82\xe3\x81\xa1\xe3\x82\x8d\xe3\x82\x93\xe5\xad\xa6\xe7\x94\x9f\xe3\x81\xae\xe7\x9a\x86\xe3\x81\x95\xe3\x82\x93\xe3\x81\xae\xe3\x83\x81\xe3\x83\xa3\xe3\x83\xac\xe3\x83\xb3\xe3\x82\xb8\xe3\x82\x82\xe3\x81\x8a\xe5\xbe\x85\xe3\x81\xa1\xe3\x81\x97\xe3\x81\xa6\xe3\x81\x8a\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x99\xe3\x80\x82";
概要
・グリーのエンジニアに応募してみたいが、応募前に自分の実力を試してみたい。
・地方に住んでいるので面接回数が少ない方がありがたい。
・面接は苦手だがプログラミングには自信がある。は、このような方々のご要望にお応えするために作られた新しい採用プログラムです。
プログラミングスキルを評価する1次面接をパスできますので効率的な転職活動を行って頂けます。
もちろん学生の皆さんのチャレンジもお待ちしております。

The google translate

Summary -But I would like to apply for the engineers of the glee, want to try their strength before application. The smaller the number of times, because they appreciate the interview live in rural areas. • The programming is confident but not good interview. Is a new adoption program was created to meet the needs of people like this. You can Tenshoku efficient activities so you can pass the next one interview to evaluate the programming. We look forward to challenge of course students

Maybe I'm wrong ;)