あなたが指摘したように、Normalize
methodはWindowsストアアプリのString
classにはありません。
ただし、これはWindows APIのNormalizeString
functionを呼び出すだけです。
この機能はさらにthe approved list of Win32 and COM API functions usable in Windows Store appsにあります。
public enum NORM_FORM
{
NormalizationOther = 0,
NormalizationC = 0x1,
NormalizationD = 0x2,
NormalizationKC = 0x5,
NormalizationKD = 0x6
};
[DllImport("Normaliz.dll", CharSet = CharSet.Unicode, ExactSpelling = true,
SetLastError = true)
public static extern int NormalizeString(NORM_FORM NormForm,
string lpSrcString,
int cwSrcLength,
StringBuilder lpDstString,
int cwDstLength);
あなたがそのようにようにそれを呼びたい:
// The form.
NORM_FORM form = ...;
// String to normalize.
string unnormalized = "...";
// Get the buffer required.
int bufferSize =
NormalizeString(form, unnormalized, unnormalized.Length, null, 0);
// Allocate the buffer.
var buffer = new StringBuilder(bufferSize);
// Normalize.
NormalizeString(form, unnormalized, unnormalized.Length, buffer, buffer.Length);
// Check for and act on errors if you want.
int error = Marshal.GetLastWin32Error();
'文字列で正しく動作するために得ることができる唯一の方法であります.Normalize'は、normaliz.dllに組み込まれているネイティブ関数に依存します。私はちょっと掘り、[NormalizeString](http://msdn.microsoft.com/en-us/library/windows/desktop/dd319093(v = vs.85).aspx)関数を使用していることを発見しました。 Windows固有のものなので、Windowsストアアプリでは使用できません。不幸にも、私は選択肢について知識がありません。 –
@AlexanderManekovskiyあなたは間違っています、['NormalizeString'はWindows Storeアプリケーションで使用可能なWin32およびCOM API関数の承認済みリストにあります](http://msdn.microsoft.com/en-us/library/windows/apps/hh452772) )。 – casperOne
@casperOneうわー、私の目はどこですか?このリストをご指摘いただきありがとうございます。 –