我正在阅读这个主题:如何在 PHP 中生成字符串的所有排列?而且我想做同样的事情,但使用泰语字符..但我得到的只是很多奇怪的字符。必须与编码有关吗?我正在使用 UTF-8。
这是代码(最初来自上面提到的线程):
<?php
mb_internal_encoding('UTF-8');
// function to generate and print all N! permutations of $str. (N = strlen($str)).
function permute($str,$i,$n)
{
if ($i == $n)
{
print mb_substr($str, 0);
print "<br></br>";
}
else
{
for ($j = $i; $j < $n; $j++)
{
swap((mb_substr($str, 0)),$i,$j);
permute((mb_substr($str, 0)), $i+1, $n);
swap($str,$i,$j); // backtrack.
}
}
}
// function to swap the char at pos $i and $j of $str.
function swap(&$str,$i,$j)
{
$temp = $str[$i];
$str[$i] = $str[$j];
$str[$j] = $temp;
}
$str = "สม";
permute((mb_substr($str, 0)),0,mb_strlen($str)); // call the function.
?>
代码更新了,现在打印出来是这样的:
สม
สม
我错过了什么?