2009-12-02 11 views
2

상표 (tm 또는 r) 또는 저작권 (c)과 같은 특수 문자를 저장할 때 모범 사례를 제공 할 수 있습니까? SQL Server에 다른 텍스트가있는 varchar 필드에 저장하고 ASP.NET 웹 페이지에 표시하고 있습니다. 지금 우리는 특수 문자 자체를 저장하고 표시하고 있습니다.데이터베이스에 특수 문자 저장

도움 주셔서 감사합니다.

나는 VARCHAR 필드에 저장하고

답변

-1

가능한 경우 ™©과 같은 HTML 엔티티를 사용하십시오.

유니 코드를 지원해야한다는 명시적인 요구가없는 한 nvarchar로 전환 할 필요가 없습니다.

+0

위대한 조언을 주셔서 감사합니다. 이러한 HTML 엔터티가 포함 된 동일한 텍스트 필드가 웹 응용 프로그램 대신 Windows 응용 프로그램에서 사용되는 경우 문제가 발생할 수 있다고 생각합니다. –

+0

물론, 텍스트 표시 방법에 따라 다릅니다.필요한 경우 항상 Windows 응용 프로그램에 포함 된 브라우저 창을 사용할 수 있습니다. – RickNZ

+0

왜 데이터를있는 그대로 저장하고 필요에 따라 HTML 또는 JavaScript 이스케이프로 변환하는 것이 좋을까요? – dan04

3

...

적어도 하나의 문제가있다. "특수"문자가있는 텍스트의 경우 nvarchar이 필요합니다.

+0

+1 또한 "특수 문자"또는 "외국어 문자"허용을 원하지 않는 한주의해야합니다. 특히 varchar를 사용하여 색인을 생성하려는 경우 기둥. 한 가지는 varchars가 nvarchars만큼의 공간을 차지하고 다른 하나는 nvarchar 쿼리 계획이 검색을 사용하는 반면 varchars는 검색을 사용하는 것입니다. 검색은 검색보다 훨씬 빠릅니다. 그게 말이된다면. –

+0

nvarchar는 무엇이 필요합니까? –

+0

varchar는 문자 당 하나의 바이트 만 허용합니다. "특수"문자는 종종 그 이상을 필요로합니다. –

2

글쎄, 그 문자로, 일반적으로 당신은 그래서 당신이 DB에 특별한 작업을 수행 할 필요가 없습니다

© 

로 렌더링 할 것이다, 그러나 당신은 "N"에 대한 -prefixed 필드를 사용한다 DB 문자열, NChar, NVarChar 등.

+0

"N"-prefixed fields를 약간 확장 할 수 있습니까? – IrishChieftain

+0

나는 이것들을 참조하고 있습니다 : http://msdn.microsoft.com/en-us/library/aa276823%28SQL.80%29.aspx –

+0

nvarchar를 사용해야하는 이유는 무엇입니까? –

0

오래된 질문이지만 새로운 대답이 필요합니다. UTF-8을 사용하십시오. 브라우저, 데이터베이스 및 웹 서버는 이제 모두 UTF-8 인코딩을 지원합니다. 즉, 특수 문자를 인코딩 할 필요가 없습니다 (논의 된 내용 (here 제외)).

this answer에 데이터베이스의 데이터를 인코딩하지 않는 몇 가지 중요한 이유가 있습니다.