2011-11-04 93 views
4

我正在尋找一個可以處理UTF-8字符的命令行程序(Windows)或PHP庫。是否有可以處理UTF-8字符的diff工具?

我搜身,我已閱讀這些問題:

,但沒有運氣。

感謝您的幫助!

+1

cygwin + diff呢? –

+0

我搜索了「php diff」和「php inline diff」,發現了幾個實現,比如http://www.pmwiki.org/wiki/Cookbook/InlineDiff – N3dst4

+0

Dave:我試過diff,它不能正確的使用utf -8。是否適合你? –

回答

2

我最終與prettydiff.com。它不是PHP lib或程序,但它適用於我所需要的。

+0

真棒小差異腳本。 – McGafter

0

幸運的吧...

我們Smart Differencer工具處理巨大的各種輸入編碼。您可以將輸入編碼定義爲環境變量,因此如果您進行了大量比較,則可能需要編寫一個小腳本。 (我們正在努力將其作爲命令行開關)。

這些工具旨在比較計算機語言,並且是特定於語言的語言。 有一個專門用來比較PHP程序的版本。

如果你想要的只是一個普通的香草文字差異,這不會是你的工具。 [這讓我想到了「微不足道的計算機語言」,它由文本行組成, 這個工具可以做得很好。我會去建立其中一個 (真的很容易與我們的機器),看看它是什麼樣子。敬請關注 這種蝙蝠頻道]

+0

我不認爲OP想比較PHP程序。 –

0

WinMerge可以處理UTF8(你需要啓動Unicode版本WinMergeU.exe)

+0

我可以運行通過命令行獲取輸出嗎?我無法使用我的程序中的GUI。 –

0

ECMerge文本的內部表示是UTF8。(注:我對ECMerge工作) 。它來自我們一個命令行工具ecmerge-cli(在Windows上,在Unix上ecmerge --cli)。從PHP調用它應該和其他命令行工具一樣簡單。無論您需要什麼,它都可以被編寫和輸出。當然,它可以生成HTML/XML差異報告和補丁。 它成功地作爲Web服務器背後的多種差異服務的基礎實現。

+0

它比較規範化形式或原始形式嗎?我懷疑你需要首先將兩個版本都標準化爲NFD或NFC,否則它會報告爲不同的字符串,這些字符串通常是等同的,這是你很少用Unicode編碼的。另外'diff'有什麼問題?這個對我有用。 – tchrist

+0

它比較原始形式。輸入過濾可用於對規範化形式進行比較(例如,使用'iconv')。 ''diff'純粹是面向行的,當'ecmerge'可以更準確地比較(單詞/字符),可能會忽略行註釋等,這取決於OP的需求。 – armel

相關問題