0

Ruby は Mac OS X と Linux ではファイル パスとファイル名の Unicode 文字でうまく動作しますが、Windows で動作させるにはなぜ 2 年以上かかったのですか?

私はちょうどGoogle Code Jamを見ていました。人々は、重要な問題を数時間以内に解決しています。職場では、1 日か 2 日、または数日、または 1 週間か 2 週間以内に解決できるように標準ライブラリに書き込む必要がある場合でも、Unicode 文字を含むファイル名またはパスの問題を解決することを想像できますか? でも2年?

理由は何ですか?Mac OS X と Linux は UTF-8 を使用していたので、そのまま動作する可能性があると思います。また、多くの ASCII プログラム コードは、何も変更せずに UTF-8 で正常に動作します。

Windowsはファイル名やパスをUTF-16で返しているのかもしれないのでややこしいですが、UTF-16からUTF-8へ、またはその逆に変換する機能があるので、かなり解決しやすい問題ではないでしょうか。

4

2 に答える 2

2

確かに解決可能な問題ですが、コア チームの誰も開発に Windows を使用していないと思います。このようなトピックについては、OSX/Linux/BSD/... ソリューションがすぐに利用できます。ほとんどの場合、これはすべてのプラットフォームの 1 つのソリューションにすぎず、主にコア開発者や人々がコアを閉じているプラ​​ットフォーム (つまり、喜んで修正行い、サポートを提供します)。また、Ruby の主な使用例は Web アプリであり、少なくとも Ruby の世界では、展開に Windows を使用することはあまりないことを覚えておいてください。

私が見ているように、デスクトップ/コンソール アプリケーションを支援するために、Ruby は OSX でのみ人気があります。Linux では Python がこの分野で優勢であり、Windows ではそのようなものはありません (VBScript かもしれませんが)。相互に対話する小さなアプリケーション (コンソール プログラム、パイプ、KISS 原則、UNIX 原則、すべて) がないことが多いためです。 Windows ではあまり一般的ではなく、何に対してもサービスを作成する必要があります)。しかし、私は何年も Windows を使用していないので、それを判断することはできません。したがって、この問題を実際に抱えている人はほんの一握りです。そして、これらの人々の誰も問題を解決しようとしない場合、それには 2 年かかります。

于 2010-06-27T13:54:40.660 に答える
2

些細な操作を行うには、OS とプログラムの間に巨大なレイヤーが必要だからです。

Windows では UTF-8でもfopen()機能しません。つまり、その理由は、Windows Unicode API が... クソ (すべての Windows 開発者に申し訳ありません) ということです。

そのため、Windows で Unicode をサポートすることは非常に困難ですが、他のすべての OS は UTF-8 でうまく機能します。

于 2010-06-27T14:00:43.613 に答える