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
'IT' 카테고리의 다른 글
'Observable' 유형에 'filter' 속성이 없습니다. (0) | 2023.10.20 |
---|---|
tiny_mce_before_init를 사용하여 wordpress용 tiny MCE를 사용하는 사용자 정의 스타일로, 선택 항목을 중심으로 div를 추가하는 대신 각 목록 항목에 스타일을 추가합니다. (0) | 2023.10.20 |
상품을 추가할 때 wocommerce 상품 페이지에서 사용자 지정 필드 값을 필수(필수)로 만들려면 어떻게 해야 합니까? (0) | 2023.10.20 |
자바스크립트에서 정의([, function ])란 무엇입니까? (0) | 2023.10.15 |
formControlName을 사용하고 중첩된 formGroup을 처리하는 방법은 무엇입니까? (0) | 2023.10.15 |