我正在尝试解析通过multipart/form-data
表单上传的utf-8编码文本文件。我已经构建了一个小.txt
文件,我在拉丁文和日文字符中输入了一些制表符分隔(无意义)的文本(我从Jpz零售网站复制/粘贴了Jpz字符)。
此时我正在尝试的是(LINE)
替换新行和(TAB)
替换标签。这是我的代码:
...
$text=file_get_contents($_FILES['upload']['tmp_name']);
$LineArray=array('\r\n','\n\r','\r','\n');
foreach ($LineArray as $value){
$pieces=(mb_split($value,$text));
$text=implode ("(LINE)",$pieces);
}
echo "Here is the modified text:<br/>";
echo $text;
echo "<br/>";
var_dump($text);
$tab='\t';
$pieces=(mb_split($tab,$text));
$text=implode ("(TAB)",$pieces);
echo "Here is the modified text:<br/>";
echo $text;
echo "<br/>";
var_dump($text);
...
以下是修改前文本的vardump:
string 'John Fitzgerald Kennedy
Winston Churchill
John Edgar Hoover
素材の 生地を柿渋で染 めた和柄パンツです
火车票 火车票 火车票 火车票
' (length=175)
第一行亚洲字符有2个标签,文件的最后一行有3个标签。
以下是所有修改后文本的vardump:
string 'John(TAB)Fitzgerald(TAB)Kennedy(LINE)Winston(TAB)(TAB)Churchill(LINE)John(TAB)Edgar(TAB)Hoover(LINE)素材の 生地を柿渋で染(TAB)めた和柄パンツです(LINE)(LINE)(LINE)火车票 火车票 火车票 火车票(LINE)(LINE)' (length=235)
为什么我的代码只能识别日文文本部分中的一个标签?
答案 0 :(得分:3)
mb_split
使用mb_regex_encoding
的值来确定处理字符串的编码。此值可能未设置为UTF-8
,因此mb_split
不期望/处理正确的编码。尝试将mb_regex_encoding
设置为UTF-8。