以下Java函数的PHP等价物是什么?
str = org.apache.commons.lang.StringEscapeUtils.unescapeJava(str);
此功能存在于Apache Commons Lang中,以下是功能
的说明Unescapes在String中找到的任何Java文字。例如,它会 将'\'和'n'的序列转换为换行符,除非 '\'前面有另一个'\'。
修改
我找到的一个解决方案是
echo json_decode('"' . $str . '"');
但我认为应该有一些其他优雅的解决方案。
修改2
正如@julp所建议的,transliterate
是另一种选择,但它仅适用于PHP 5.4及更高版本。不幸的是我仍然使用PHP 5.3并且需要一个可以在PHP 5.3中运行的解决方案
答案 0 :(得分:3)
使用PHP> = 5.4和intl扩展名,您有Transliterator
class:
$in = '\u0041\U00000062';
$out = transliterator_create('Hex-Any')->transliterate($in);
var_dump($out); # string(2) "Ab"
答案 1 :(得分:0)
PHP strings是Java字节数组的等价物。它们(按照定义)是256位字符集(字节0x00-0xff )。但是,PHP字符串语法已经在双引号字符串(see the manual page for more details)中提供了某些转义字符序列的插值。
但是,如果您正在接收JSON编码的字符串,则json_decode函数会将该字符串正确解码为PHP(前提是它符合JSON规范)。
$json_string = '"Hello\nWorld"';
var_dump(json_decode($json_string));
/*
Notice that the string output is 11 characters long and a line break character is present
string(11) "Hello
World"
*/