IT

string.Lower() 및 string에 연결합니다.아래쪽으로불변()

itgroup 2023. 10. 20. 13:33
반응형

string.Lower() 및 string에 연결합니다.아래쪽으로불변()

어떤 차이가 있고 언제 무엇을 사용해야 합니까?항상 사용할 경우 위험은 얼마나 됩니까?ToLower()그리고 내가 항상 사용한다면 위험은 얼마나 될까요?ToLowerInvariant()?

현재 문화에 따라 ToLower는 사용자가 기대하지 않는 문화별 소문자를 생성할 수 있습니다.제작 등ınfo대신에 i에 점이 없이info그래서 끈 비교를 망치게 됩니다.그런 이유로 To Lower언어별 데이터가 아닌 데이터에는 불변성을 사용해야 합니다.모국어/문자 집합에 있을 수 있는 사용자 입력이 있을 수 있는 경우 일반적으로 ToLower를 사용하는 것이 유일합니다.

이 문제의 예는 다음 질문을 참조하십시오.C#-ToLower()가 때때로 문자에서 점을 제거하고 있습니다. "나는"

TL;DR:

"컨텐츠" 작업시 (기사,게시글,댓글,이름,장소 등) 사용ToLower(). "literals"(예: 명령줄 인수, 사용자 지정 문법, 숫자여야 하는 문자열 등)를 사용할 때ToLowerInvariant().

예:

=잘못사용하기=

터키어로.DIŞ"outside"을 의미하고,diş"tooth"을 의미합니다.의 적절한 하부 케이스DIŞdış. 그래서 만약 여러분들이.ToLowerInvariant당신은 터키에서 오타를 가지고 있을지도 모릅니다.

=잘못사용하기=

이제 SQL 파서를 작성하는 것처럼 하십시오.다음과 같은 코드가 있습니다.

if(operator.ToLower() == "like")
{
  // Handle an SQL LIKE operator
}

문화를 변경해도 SQL 문법은 바뀌지 않습니다.프랑스 사람은 글을 쓰지 않습니다.SÉLECTIONNEZ x DE books대신에SELECT X FROM books. 그러나 위 코드가 작동하기 위해서는 터키인이 글을 써야 할 것입니다.SELECT x FROM books WHERE Author LİKE '%Adams%'(수도 i 위의 점을 주목하여, 거의 보이지 않습니다.)이것은 당신의 터키 사용자에게 매우 실망스러울 것입니다.

유용하게 사용할 수 있다고 생각합니다.

http://msdn.microsoft.com/en-us/library/system.string.tolowerinvariant.aspx

갱신하다

현재 문화에 영향을 받지 않는 문자열이 예측 가능한 방식으로 변경되는 경우 응용프로그램이 대상을 사용합니다.불변 방법.아래쪽으로불변 메서드는 ToLower(CultureInfo)와 동일합니다.불변의 문화).이 방법은 문자열 모음이 사용자 인터페이스 컨트롤에서 예측 가능한 순서로 나타나야 하는 경우에 권장됩니다.

또한.

...ToLower는 ToLower와 대부분의 장소에서 매우 유사합니다.불변.그 문서들은 이러한 방법들이 터키 문화에 따라 행동만 바꿀 것임을 나타냅니다.또한 Windows 시스템에서 파일 시스템은 대소문자를 구분하지 않으므로 사용이 더욱 제한됩니다.

http://www.dotnetperls.com/tolowerinvariant-toupperinvariant

hth

String.ToLower()기본 문화를 사용하는 동안String.ToLowerInvariant()불변의 문화를 사용합니다.그래서 당신은 본질적으로 불변의 문화와 순서적인 끈 비교의 차이를 묻고 있는 것입니다.

언급URL : https://stackoverflow.com/questions/6225808/string-tolower-and-string-tolowerinvariant

반응형