どのようにしてユニコードをANSIに変換できますか?ユニコードからANSI
例Iは、以下のユニコードのユーザー名があります。
очередной
を、私はこのインポートメソッドを呼び出す:私はきた今
C:\Users\A690~1\AppData\Local\Temp\
:私は次の結果を受け取り
[DllImport("kernel32.dll", EntryPoint = "GetTempPathA")]
public static extern uint GetTempPath(uint nBufferLength, [Out()]
System.Text.StringBuilder lpBuffer);
を次のような複数のエンコーディングを試しました:
Encoding.ASCII.GetString(Encoding.Unicode.GetBytes(Environment.UserName));
Encoding.GetEncoding(1250).GetString(Encoding.Unicode.GetBytes(Environment.UserName));
Encoding.GetEncoding(1251).GetString(Encoding.Unicode.GetBytes(Environment.UserName));
しかし、それらのどれもインポートメソッドと同じ結果を得ていませんでした。ユニコード文字列をANSIに正しく変換することで、インポートメソッドと同じ結果が得られますか?
インポートメソッドで何も変換されない場合は、ユーザーの一時ディレクトリへのパスが返されます。 https://msdn.microsoft.com/en-US/library/windows/desktop/aa364992(v=vs.85).aspx –
私の質問はどのように文字列 'очередной'を 'A690〜1' – user7436839