FolderItem.ShellPath の日本語対応


# Xcode 2.2が出てますね。とりあえずインストールだけしてみましたが、メニューとかが日本語化されててありがたいです。


こないだ書いた REALbasic の FolderItem.ShellPath で日本語ファイル名(フォルダ名)がマズイ件は解決できたっぽいです。


すげぇベタなコードですが、こんな感じで。

Function ShellPath(f As FolderItem) As String
  Dim sp, s_hex, s_oct As String
  Dim i As Integer
  Dim c As TextConverter
  c = GetTextConverter(Encodings.UTF8, Encodings.UTF8)
  sp = f.ShellPath
  i = InStr(0, sp, "?")
  While i > 0
    If Left(Mid(sp, i+1), 1) = "?" Then
      i = i+2
    Else
      s_oct = Left(Mid(sp, i+1), 3)
      s_hex = "%"+Hex(Val("&o"+s_oct))
      sp = sp.ReplaceAll("?"+s_oct, s_hex)
    End If
    i = InStr(i, sp, "?")
  Wend
  sp = c.Convert(DecodeURLComponent(sp))
  Return sp


UTF8からUTF8にコンバートしてるのがポイントです。w
動作確認をちゃんとしてないので、ちょっと心配。特に Jaguar 以前とかの環境とか。