perl xml dom中文乱码问题解决
生活随笔
收集整理的這篇文章主要介紹了
perl xml dom中文乱码问题解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
在linux服務器上,很容易出現中文亂碼。
一般情況下,只要保持服務器環境是utf8,文件格式是utf8,用各種語言默認的讀寫文件方式通常不會出現亂碼。
但是,在用perl xml dom寫xml的時候就出現了這個問題。
perl xml dom默認應該是用ascii來讀寫文件,所以,對中文要先進行解碼decode,再寫入。
例如:
1 #更新顯示的xml文件 2 sub writeXml 3 { 4 my $projectList = "$hometouch_root/config/projectList.xml"; 5 my $parser = new XML::DOM::Parser ; 6 my $doc = $parser->parsefile($projectList); 7 XML::DOM::setTagCompression(sub{return 1}); 8 my $newItem = $doc->createElement("item"); 9 #所以這里先將中文進行解碼 10 $newItem->setAttribute("name",decode("utf8",$projectChinese)); 11 $newItem->setAttribute("eng",$projectName); 12 $newItem->setAttribute("version",""); 13 my $root = $doc->getElementsByTagName("projects")->[0]; 14 $root->appendChild($newItem); 15 16 #write the file 17 my $xml = ($doc->createXMLDecl('1.0','UTF-8')->toString).($root->toString) ; 18 19 open my $myfd, ">", $projectList; 20 print $myfd $xml ; 21 close $myfd ; 22 23 #xml tidy 24 my $tidy_obj = XML::Tidy->new('filename' => $projectList); 25 $tidy_obj->tidy(); 26 $tidy_obj->write(); 27 }?
轉載于:https://my.oschina.net/ifeixiang/blog/339595
總結
以上是生活随笔為你收集整理的perl xml dom中文乱码问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 巨人网络与阿里云达成合作 共同打造&ld
- 下一篇: 体验升级,Nothing Ear(sti