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));
}
}