2012-03-23 6 views
6

내가 일하는 회사는 간소화 된 중국어 입력을 허용하는 전자 상거래 솔루션을 필요로하는 프로젝트에 입찰하고 있습니다. 약간의 연구를 수행 한 후에는 ASP.net 세계화 구성이 쉽게 보인다 :중국어 간체 입력 허용

<configuration> 
    <system.web> 
    <globalization 
     fileEncoding="utf-8" 
     requestEncoding="utf-8" 
     responseEncoding="utf-8" 
     culture="zh-Hans" 
     uiCulture="en-us" /> 
    </system.web> 
</configuration> 

질문 :

  1. 이이 ASP.net에서 거기 정말 모든인가를? 그것은 사실 인 것으로 좋은 것 같습니다.
  2. SQL Server 2005에 대한 DB 고려 사항이 있습니까? DB가 추가 구성없이 중국어 간체를 사용할 수 있습니까?
+3

유니 코드 문자를 지원하려면 DB 스키마의 필드 유형을 char, varchar 및 text에서 nchar, nvarchar 및 ntext로 변경해야한다고 생각합니다. ASP.NET 부분에 대해 잘 모르겠습니다. – RMorrisey

+0

오픈 소스 전자 상거래 플랫폼을 처음부터 다시 사용하지 않으려면 http://demo.aspxcommerce.com 코드 플렉스 : http://aspxcommerce.codeplex.com –

답변

6

광고 1. 실제 질문은 국제화로 얼마나 멀리 가고 싶은지입니다. i18n은 유니 코드 입력을 허용하지 않기 때문입니다. 최소한 지역 날짜, 시간 및 숫자 형식, 로컬 데이터 정렬 (주로 정렬과 관련이 있음)을 지원하고 응용 프로그램이 지역화 된 운영 체제에서 올바르게 실행되는지 확인해야합니다 (클라우드 일명 호스팅 솔루션을 개발하지 않는 경우). 자세한 내용은 here을 참조하십시오.

한자 입력에 대한 지원이 제공되는 한 중국에서 소프트웨어를 제공하려면 적어도 GB18030-2000을 지원해야합니다. 이를 위해 유니 코드 3.0을 지원하는 .NET Framework 버전을 사용해야합니다. 나는 그것이 .Net Framework 2.0 이후로 지원되었다고 생각한다.
그러나 한 단계 더 나아가고 싶다면 (경쟁 우위를 확보하는 데 필요할 수 있음) GB18030-2005를 지원할 수 있습니다. 유일한 문제는이 문자들 (CJK Unified Ideographs Extension B)에 대한 완전한 지원이 나중에 일어난 것입니다 (나는 유니 코드 6.0인지 유니 코드 6.1인지 확실하지 않습니다). 따라서 최신 .Net Framework를 사용해야하고 모든 것을 다룰 지 확실하지 않을 수도 있습니다.
Unicode FAQ on Han characters을 읽을 수도 있습니다.

광고 2. 중국어 문자로 SQL Server 2005를 사용하지 말 것을 강력히 권고합니다. 그 이유는 이전 SQL Server 엔진이 UTF-16이 아닌 UCS-2 만 지원하기 때문입니다. 이것은 사소한 차이로 보일지 모르지만 실제로는 4 바이트 한자 표기법에 문제가 있습니다. 사실, 검색어 (예 : LIKE 또는 WHERE 절)에서 사용할 수 있기를 원합니다. 모두 개의 레코드가 전송됩니다. 그것이 작동하는 방법입니다. 그리고 그들을 지원하기 위해서는 매우 특정한 중국어 데이터 정렬을 설정해야합니다. 그러면 다른 언어에 대한 지원이 중단됩니다.
기본적으로 중국어 표기와 함께 SQL Server 2005를 사용하면 아이디어입니다.

2

우선 zh-Hansneutral culture으로 올바른 문화권 식별자를 선택했는지 궁금합니다. 특정 문화를 타겟팅하는 것이 더 적절할 수 있습니다 (예 : zh-CN (중국에서 중국이 중국에서 사용됨). 지원하려는 시장 인 경우).

둘째,이 culture를 독점적으로 대상으로하는 배포를 계획하는 경우 web.config 파일을 사용하여 culture를 설정하는 것이 좋습니다. 하나의 동일한 배포가 최종 사용자 문화권에 동적으로 적응하기를 원하는 경우가 있습니다.이 경우 URL 체계 (예 : www.myapp)를 기반으로 Thread.CurrentCulture (심지어 현지화 된 리소스를 제공하는 경우 Thread.CurrentUICulture)을 프로그래밍 방식으로 설정해야하는 경우가 많습니다. com은 en-US를 사용하고 www.myapp.com/china는 zh-CN을 사용합니다) 또는 accept-languages ​​헤더 또는 인앱 언어 선택기를 사용합니다.

Paweł이 말한 유니 코드 제한 사항 (즉, 최신 .NET Framework/SQL Server를 사용해야 할 수도 있음) 이외에 중국어 간체를 처리하기 위해 특별히해야 할 것은 없습니다. if 당신은 표준을 따라 internationalization guidelines 모든 설정해야합니다. 아마도 앱을 중국어로 현지화 (번역)하는 것이 좋습니다.

SQL Server에 대해 Paweł의 요점은 매우 명확하게 보입니다. 즉, nvarchar 데이터 형식 (유니 코드)을 사용하고 DB 측면에서이 열을 기반으로 쿼리를 실행하거나 정렬하지 않으면 SQL Server 2005에 문제가있는 경우 놀랄 것입니다. 따라서 실제로이 데이터로 무엇을 할 것인가에 달려 있습니다.

+1

확실히 zh-CN을 의미하는 것이지 중국어 - 스위스 :) zh-Hans (중국어 간체 한자)와 zh-Hant (중국어 번체 한자)가이 서체 시스템이었던 이유는 여러 국가 또는 지역에서 사용되고 있습니다 (중국과 싱가포르는 zh-Hans, 대만, 홍콩, 마카오는 zh-Hant를 사용합니다). 당신의 제안에 따라, 솔직히 말이되지 않는 특정 문화 (zh-CN, zh-SG, zh-TW, zh-MO 또는 zh-HK) 중 하나를 CurrentUICulture로 사용해야 할 것입니다. zh-Hans와 zh-Hant는 이러한 상황을 피하는 것이 었습니다). CurrentCulture에만 특정 문화권을 사용해야합니다. –

+0

:) +1 중국 - 스위스! 즉 원래 게시물 zh-Hans는 UICulture가 아닌 culture 속성 (Thread.CurrentCulture)에 대해 지정되었으며이 경우 중립 문화권을 사용하는 것은 좋은 생각이 아닙니다 (RegionInfo에 액세스하려고하면 예외가 발생합니다. 적절한 것이 아닌 기본값을 얻습니다). 지역간 문화 간 차이가 있으며 중립적 인 문화 뒤에 숨어서 그 차이가 존재하지 않는다고 가장하는 것은 실제로 하나 (또는 ​​그 이상)를 고르고 자신이 목표로하는 것을 아는 것보다 나쁩니다. – Clafou

관련 문제