2017-03-13 28 views
0

對於在命令行中運行的PHP(5.6)腳本,我試圖打印平方根符號,但未能這樣做。相反,我得到垃圾角色。如何在Windows 10命令提示符下運行PHP腳本時打印出平方根符號?

我已經閱讀了關於從PHP CLI向命令行打印unicode字符的許多問題/答案,但沒有一個與我的示例完全相關。

我在使用標準命令提示符(cmd.exe)的Windows 10上,我很高興使用它。

我使用Consolas字體並運行chcp 65001來將提示設置爲utf-8。 *也試過Lucida遊戲機*。

// Square root symbol 

echo "\u221A"; 
echo "\xe2\x88\x9a"; 
echo '√'; 

我已經試過iconv()json_decode()mb_convert_encoding()pack()全部失敗。

+0

可能的重複http://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how –

+0

@JayBlanchard他已經在使用chcp 65001,這是對問題的回答你鏈接。 – Dimi

+0

請使用√ – user1544541

回答

0

solution


<?php 
    shell_exec('chcp 65001'); // set to utf-8 
    $formatter = "\033[0m%s\n"; // use white text 
    $sqrt  = html_entity_decode('&radic;'); 
    $output = sprintf($formatter, $sqrt); 
    $output .= sprintf($formatter, $sqrt); 
    // Padding required on the last line to prevent miscellaneous chars printing to the console 
    // (Double the total number of lines (3)) 
    $output .= sprintf($formatter, $sqrt . str_repeat(' ', 3*2)); 
    echo rtrim($output, "\n"); 
1
<? 
    echo "\u{221a}"; 
    echo json_decode('"\u221a"'); 
    echo html_entity_decode('&#x221a;', 0, 'UTF-8'); 
?> 

命令行測試環節與 「索拉」 字體:

W:\php-7.1.2-Win32-VC14-x64>type test.php 
<? 
    echo "\u{221a}"; 
    echo json_decode('"\u221a"'); 
    echo html_entity_decode('&#x221a;', 0, 'UTF-8'); 
?> 
W:\php-7.1.2-Win32-VC14-x64>chcp 
Página de códigos activa: 850 

W:\php-7.1.2-Win32-VC14-x64>php test.php 
√√√ 
W:\php-7.1.2-Win32-VC14-x64>chcp 65001 
Página de códigos activa: 65001 

W:\php-7.1.2-Win32-VC14-x64>php test.php 
√√√ 
W:\php-7.1.2-Win32-VC14-x64> 

編輯適應的意見 - 在測試了PHP 30年6月5日

<? 
    $entity = '&radic;'; 

    // select the one you like the best 
    $squareRoot = '√'; 
    $squareRoot = html_entity_decode($entity); 
    $squareRoot = mb_convert_encoding($entity, 'UTF-8', 'HTML-ENTITIES'); 

    printf('test: %s', $squareRoot); 

?> 
+0

感謝您的這一點,但看到我編輯的問題輸出我得到 - 我在PHP 5.6 – u01jmg3

+0

@ u01jmg3,回答更新 –

+0

有更多的成功,但現在我有'?'來抗衡和古怪,我需要空間任何一方'%s'否則我只是'''作爲輸出。 – u01jmg3

相關問題