ubuntuåvs osxå?


10

これがubuntuとosxのどちらの質問かはわかりませんが、ここから始めます。より適切な場合は、質問をAskDifferentに移動するようにmodに任せます。

Appleマシンでscpを使用して、ubuntuからosxにファイルを移動しました。Appleマシンでファイルを編集しました。次に、Appleマシンでscpを使用して、ファイルを元に戻しました。

ソースファイルのファイル名はDocuments /trettiårsfirarätareでした

  • ソースコード: Documents/trettiårsfirarätare

返されたファイル名はDocuments /trettiårsfirarätareという名前でした

  • ソースコード: Documents/trettia˚rsfirara¨tare

これらは似ているように見えるかもしれませんが、åとäは実際にはそれらの間で異なります。ファイルの名前を変更したことはありません。

これにより、技術的な違いはほとんどなくなり、ファイル名をubuntuがåおよびäと見なすものに戻しただけですが、好奇心がくすぐられました。

なぜこれが起こったのか説明してもらえますか?


1
この問題はおそらくUnicodeに関係しています。何があなたがどうなるscpコマンドからのコピー(または当量)をOS XのUbuntu(またはUbuntuのOS Xに)が、Ubuntuマシンに?
david6 2013

私はこの質問をMacから見て、線の間に違いは見られませんでした。今、Ubuntuラップトップに戻ったとき、Takkatが編集する前でさえ、すぐに正方形が見えました。
Alvar 2013

Appleマシンにsshdがないため、ubuntuからubuntuからosxへのscp-ingを試みませんが、osxでのscp-ingでファイル名を変更できます。前後に一度だけコピーして名前を変更したので、scpが名前を変更するアプリケーションのようです。
2013

回答:


8

元の名前「Documents /trettiårsfirarätare」では、「å」の文字は内部的にU + 00E5ラテン小文字Aの上にリングが付いたものとして表されます。これは、このキャラクターの一般的な表現です。返されたファイル名では、文字ペアU + 0061 LATIN SMALL LETTER A U + 030A COMBINING RING ABOVEになっています。これは許容されますが、一般的ではありません。これは、「å」を基本文字「a」と結合発音区別記号に分解することを意味します。これらの表現は、Unicodeでは標準的に同等であると宣言されています。これは、視覚的表現は通常同じであると予想されますが、必ずしもそうである必要はないことを意味します(ここでは、Firefoxで表示されるSOでは異なります。これはフォントとレンダリングソフトウェアに依存します)。プログラムはそれらを同等のものとして扱う場合がありますが、必ずしもそうする必要はありません。たとえば、ファイルシステムでは、それらは異なるものとして扱われる可能性があります。

同様に、文字「ä」はU + 0061ローマ字小文字A U + 0308結合分音符号に分解されます。

これの理由は明らかではありません。おそらく一部のソフトウェアは、文字列をすべての分解可能な文字を分解する正規化形式、おそらくUnicode正規化形式D(NFD)に変換する必要があると「考える」

残りは少し不思議です。返されたファイル名「Documents /trettia˚rsfirara¨tare」の「ソースコード」として指定したもの、分解されたフォームが変更されました。分音記号は、スペースクローン、文字「˚」と「¨」に置き換えられました」。これは正常ではなく、データのアイデンティティとそのレンダリングの両方を変更します。


SourceCodeパーツは私が追加したものではありません。文字の視覚的表現に違いがあることがわかります。最初のåは2番目よりも小さいリングを持っていますが、文字列は同じように見えます。ただし、bashタブ補完を使用する場合は同等ではありません。
2013

実際åが独自に手紙で、それだけではありませんAと同じように、発音区別符号マークの付いた時間は、文字だけでなく、とあるnは発音区別符号マークの付きました。
kasperd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.