2012-07-10 85 views
0

我有一個失敗的摩卡測試,輸出我的字符串與「實際」和「預期」突出顯示...除了沒有突出顯示。摩卡失敗,沒有字符串比較,utf-8?

no highlighting

一些撲頭後,我想我已經決定了我的實際字符串包含了一些怪誕的UTF-8字符,是完全從我隱藏的,摩卡似乎不知道他們突出。

我想通過將我的預期值和實際值寫入原始文本文件並將它們加載到Kaleidoscope中來解決這個問題,這表明它們通過突出顯示單詞之間看似空白的區域而有所不同。

enter image description here

我試圖加載utf8庫(在NPM)和編碼的字符串之一與utf8.encode str,而且還是失敗了,但現在的字符顯示爲東西比空格更多,摩卡也強調:

some highlighting

但無論哪種方式,我的測試失敗。我如何編碼/解碼/無論這些字符串,以便他們匹配和我的測試通過?

順便說一句,我使用的是在我的測試比較字符串看起來是這樣的:

comparison string

+0

你是如何得到預期身體的內容的?如果你複製/粘貼它,那麼你可能需要將你粘貼的utf8字符轉換爲正確的字符串字符utf8格式,如'\ u0065'或其他。 – loganfsmyth 2012-07-10 04:05:09

+0

嗯,是的,我做了複製/粘貼...有什麼我可以通過字符串將這些字符轉換爲字符串文字? – neezer 2012-07-10 04:14:28

+0

既然你把它粘貼到你的文本編輯器中,你用什麼編輯器?也許它將你的JS文件保存爲不正確的編碼?嘗試在你的mocha文件上運行'file -bi filename.js'並確保它是utf-8。只要複製粘貼應該沒問題,因爲字符串文字中的UTF8字符應該沒問題。 – loganfsmyth 2012-07-10 04:37:07

回答

0

確保任何文本編輯器中保存您的源代碼作爲適當UTF-8,或將這些複製/粘貼字符作爲@loganfsmyth正確評論。

+0

我試過複製/粘貼幾個編輯器,我知道支持UTF-8(TextMate,SublimeText2),並且我用'file -bi'檢查了文件類型,字符集正確設置爲'text/plain;字符集= UTF-8'。我認爲我最好的辦法是按照你的建議將所有的字符轉換爲文字,但我該怎麼做? – neezer 2012-07-10 05:29:46

+0

如果您確信磁盤上的二進制數據已正確編碼爲UTF-8,請使用十六進制編輯器打開它(或告訴您的編輯器以十六進制打開它),然後將十六進制轉換爲unicode轉義文字。這個答案有一個例子:http://stackoverflow.com/a/8005329/266795 – 2012-07-10 05:36:37

+0

這似乎很多工作......無論如何,我可以通過這個文本通過一些程序,並讓它過濾冒犯字符到文字剩下的字符串保持完好?我通過改變我的期望到'它'得到完整的身體', - > escape(@ parsed.body).should.equal escape(page。身體)',但現在我的差異是一個大規模的逃逸字符塊,這使得在TDD期間很難有一個很好的視覺差異... – neezer 2012-07-10 05:40:35