지적했듯이 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 Store 응용 프로그램에서는 사용할 수 없습니다. 불행히도 대안에 대한 지식이 없습니다. –
@AlexanderManekovskiy 틀렸어 [NormalizeString은 Windows Store 응용 프로그램에서 사용할 수있는 Win32 및 COM API 함수의 승인 된 목록에 있습니다] (http://msdn.microsoft.com/en-us/library/windows/apps/hh452772)). – casperOne
@casperOne 와우, 내 눈은 어딨어?! 이 목록을 가리켜 주셔서 감사합니다. –