C# DirectorySpeparatorChar.ToString()未显示“0”;日元";日本文化中的性格

C# DirectorySpeparatorChar.ToString()未显示“0”;日元";日本文化中的性格,c#,wpf,internationalization,C#,Wpf,Internationalization,显示卷名、冒号、目录字符分隔符的文本块。 在英国文化中,它将显示C:\,在日本文化中,它将显示C:'Yen' View.XAML文件: <TextBlock Text="{Binding VolumeNameString, Mode=OneWay}"/> 这个问题在日本文化中,它仍然显示C:\,而没有显示C:'Yen' 这里的“日元”是日元的符号。我试过使用日本操作系统,但问题仍然存在 我做错什么了吗?应用程序是在.NET 3.5上创建的。如何查看生成的字符串?如果您使用的是Uni

显示卷名、冒号、目录字符分隔符的文本块。 在英国文化中,它将显示
C:\
,在日本文化中,它将显示
C:'Yen'

View.XAML文件:

<TextBlock Text="{Binding VolumeNameString, Mode=OneWay}"/>
这个问题在日本文化中,它仍然显示
C:\
,而没有显示
C:'Yen'

这里的“日元”是日元的符号。我试过使用日本操作系统,但问题仍然存在


我做错什么了吗?应用程序是在.NET 3.5上创建的。

如何查看生成的字符串?如果您使用的是Unicode,它将显示为反斜杠。只有在使用日文字符集(如shift jis)时,才会看到“日元”符号

以下是ascii表和shift jis表:


注意ascii中的反斜杠和shift-jis中的日元都位于位置5C。因此,分隔符代码点实际上是相同的,只是字符集使其显示不同。

嗨,本,是的,它是Unicode。我认为CultureInfo.CurrentCulture应该相应地处理它。但现在我认为,在显示路径分隔符之前,必须对其进行编码以将jis从unicode转换为jis。我猜您可能希望将区域设置设置为
ja-JP
如下:
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride=“ja-JP”@naota:我也试过了,但也没用。CultureInfo.CurrentCulture适用于日期时间格式,但不适用于DirectorySeperator,因为位置相同5C。
public string VolumeName
    {
        get
        {
            return m_volumeName;
        }

        private set
        {
            if (m_volumeName != value)
            {
                m_volumeName = value;
                OnPropertyChanged("VolumeNameString");
            }
        }
    }

public string VolumeNameString
    {
        get
        {
            return (this.VolumeName + ":" + System.IO.Path.DirectorySeparatorChar.ToString(CultureInfo.CurrentCulture));
        }
    }