感谢这个好消息。我将对其进行测试,并确认
您好,
您的解决方案是不是在总体上是好的。为什么呢?这是与字母的ASCII码256(转换和显示良好)下工作,但超过256个字母的ASCII码我有“?”迹象。
因此,我们需要我们的两个解决方案结合在一个
例如:
这一行:PHP Code:
function vbet_encodeToSafeUTF8(&$string) {
$string = preg_replace('/([\340-\357])([\200-\277])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-224)*4096 + (ord(\'\\2\')-128)*64 + (ord(\'\\3\')-128)).\';\'',
$string);
//decode two byte unicode characters
$string = preg_replace('/([\304-\337])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-192)*64+(ord(\'\\2\')-128)).\';\'',
$string);
$string = utf8_decode($string);
return $string;
}
我的功能,但只能由256比ASCII码的信件定义下,将不解码PHP Code:
[\304-\337]
我still.I测试它,我不能完全肯定一切正常现在。PHP Code:
utf8_decode
您可以测试它呢!
对于我而言,解决方案正常工作... ...我只翻译成两个langauges ...英语和法语。这两者是ISO - 8859 - 1(拉丁文)语言。因此,“utf_decode”功能正常工作。
然而,在全球范围内,该utf_decode函数可能会不工作“LATIN1”以外的其他语言。
我不是一个的vBulletin程序员。不过,我会提供一个建议:
也许用一个“如果”的说法可能适合你的目的,如果您的解决方案不工作。在下面的例子中,“translated_language_var”将被翻译成目标语言。
IE浏览器:
使用像这样或许会是一个确定的方法来保持安全的一切...???我敢肯定,你可以很容易地使用这个伪代码,并使其为百度推广工作。PHP Code:
$latin1 = array(English,French,Spanish,Italian....etc);
if (in_array(translated_language_var,$latin1)){
$string = utf_decode($string);
}else{
original solution;
}
return $string;
最后编辑者 freddie3218; 14-03-11 在 05:12.
解决 - 将被包括在未来relase