如何仅使用ASCII在PHP中定义Unicode字符?
因为我们的PHP代码运行在不同的环境中,所以我们不控制(并且我们不知道的编码),我们的想法是在源代码中不使用任何非ASCII字符 但是,代码中有一些地方定义了不包含ASCII字符的字符串文字,如“TextWithÜ” 有没有一种方法可以只使用ASCII编写“Ü” 我能想到的最好方法就是使用HTML符号并对其进行解码如何仅使用ASCII在PHP中定义Unicode字符?,php,encoding,utf-8,html-entities,Php,Encoding,Utf 8,Html Entities,因为我们的PHP代码运行在不同的环境中,所以我们不控制(并且我们不知道的编码),我们的想法是在源代码中不使用任何非ASCII字符 但是,代码中有一些地方定义了不包含ASCII字符的字符串文字,如“TextWithÜ” 有没有一种方法可以只使用ASCII编写“Ü” 我能想到的最好方法就是使用HTML符号并对其进行解码 html_entity_decode('TextWithÜ'); 但是,由于我们不知道系统默认编码,因此我还必须检测: html_entity_decode('T
html_entity_decode('TextWithÜ');
但是,由于我们不知道系统默认编码,因此我还必须检测:
html_entity_decode('TextWithÜ', ENT_COMPAT | ENT_HTML401, ini_get('default_charset'));
并且只支持ini\u get('default\u charset')
的子集,这就是为什么有时可能会失败的原因
有更好的办法吗
$str = "TextWith\xC3\x9C"; // "Ü"
这对写和读都有点麻烦,但这是系统不可知地生成具有特定编码内容的字符串的最直接方法function take_input($input) {
$input = iconv(App::externalEncoding(), 'UTF-8', $input);
...
}
require_once 'JochensCode.php';
App::externalEncoding('SJIS');
take_input('文字化け');
echo return_output();
在将数据返回到其他代码的所有点上,您应该执行以下操作:
function return_output() {
...
return iconv('UTF-8', App::externalEncoding(), $output);
}
从另一个应用程序的角度来看,这看起来像:
function take_input($input) {
$input = iconv(App::externalEncoding(), 'UTF-8', $input);
...
}
require_once 'JochensCode.php';
App::externalEncoding('SJIS');
take_input('文字化け');
echo return_output();
$str = "TextWith\xC3\x9C"; // "Ü"
这对写和读都有点麻烦,但这是系统不可知地生成具有特定编码内容的字符串的最直接方法function take_input($input) {
$input = iconv(App::externalEncoding(), 'UTF-8', $input);
...
}
require_once 'JochensCode.php';
App::externalEncoding('SJIS');
take_input('文字化け');
echo return_output();
在将数据返回到其他代码的所有点上,您应该执行以下操作:
function return_output() {
...
return iconv('UTF-8', App::externalEncoding(), $output);
}
从另一个应用程序的角度来看,这看起来像:
function take_input($input) {
$input = iconv(App::externalEncoding(), 'UTF-8', $input);
...
}
require_once 'JochensCode.php';
App::externalEncoding('SJIS');
take_input('文字化け');
echo return_output();
我有点不清楚你到底关心什么。你能澄清一下在这些环境中你到底不能控制什么,以及在哪里你可能会看到由于编码问题而导致的失败吗?首先,使用ASCII是个坏主意,你最好使用UTF-8。对不起,我不太清楚你到底关心什么。你能澄清一下在这些环境中你到底不能控制什么,以及在哪里你可能会看到由于编码问题而导致的失败吗?首先,使用ASCII是个坏主意,你最好使用UTF-8。对不起,但是我