0
我已經說服了我的老闆使用PHP(PHP版本5.2.8)進行排版。 這是我走到這一步(設置字符編碼爲Unicode(UTF-8)如果你看到misrendered日文字符):爲什麼我的排版功能不適用於非拉丁/亞洲字符?
demo page at my personal website
基本上,如果你複製並粘貼拉丁樣本段落入textarea並點擊按鈕,一切正常,你可以通過將結果粘貼到記事本中進行檢查來驗證(儘管我沒有做任何事情來使用連字符來表示由新行分隔的單詞)。
然而,當它與非拉丁/亞洲字符,沒有打印出來。我沒有得到任何產生的錯誤信息,就不能看到所有的東西...
以下是我的代碼:
<?php
$words = typesetWords($_POST['words']);
echo json_encode(array('feedback' => $words));
function typesetWords($words, $lineLength = 70)
{
try
{
$result = '';
$paragraphs = explode("\n\n", $words);
foreach($paragraphs as $paragraph)
{
$paragraph = str_replace("\n", "", $paragraph);
$length = strlen($paragraph);
$numberOfLines = intval($length/$lineLength);
$tmp = '';
if($numberOfLines > 0)
{
for($i = 0; $i < $numberOfLines; $i++)
$tmp .= substr($paragraph, $i * $lineLength, $lineLength)."\n";
$tmp .= substr($paragraph, -1 * ($length % $lineLength))."\n\n";
$result .= $tmp;
}
else $result .= $paragraph."\n\n";
}
}
catch(Exception $e)
{
return $e->getMessage();
}
return $result;
}
>
我試圖返回的內容被髮送?表格直接返回,而且我確實看到日文示例段沒有問題。所以我認爲其中一個PHP庫函數必須有 導致錯誤,但我不知道哪一個以及如何修復它...
非常感謝提前!
感謝您的提示!我會去檢查。 – 2009-11-28 05:11:41
編號mb_strlen()不會解決問題。 textarea仍然沒有任何東西。 – 2009-11-28 05:16:45
哦。我知道了。將mb_interal_encoding設置爲UTF-8並將所有字符串函數替換爲UTF-8安全對等方後,一切正常! 感謝您的提示! – 2009-11-28 05:31:19