문제

나는 Django와 같은 일부 프레임 워크가 유니 코드를 전부에서 사용하는 것을 보았으므로 좋은 생각이 될 수 있습니다.

다른 한편으로,이 모든 여분의 'U가 어디에나 떠 다니는 것은 큰 고통처럼 보입니다.

내가 이것을하지 않으면 무엇이 문제가 될까요?

내가이 일을하면 제기 될 문제가 있습니까?

나는 지금 내 프레임 워크로 Pylons를 사용하고 있습니다.

도움이 되었습니까?

해결책

Python 3에서는 모든 문자열이 유니 코드입니다. 따라서 사용하여 준비 할 수 있습니다 u'' 필요한 곳에 필요한 문자열, 그리고 결국 Python 3으로 업그레이드 할 때 2to3 모든 도구 uS는 사라질 것입니다. 그리고 유니 코드 문자열로 코드를 이미 테스트했기 때문에 더 나은 위치에있을 것입니다.

보다 텍스트 대 유니 코드 대신 데이터 8 비트 자세한 내용은.

다른 팁

당신은 피할 수 있습니다 u'' Python 2.6에서 수행함으로써 :

from __future__ import unicode_literals

그것은 만들 것입니다 'string literals' Python 3에서와 마찬가지로 유니 코드 객체가되는 것;

내가 이것을하지 않으면 무엇이 문제가 될까요?

저는 일본에 사는 서양인이므로 ASCII가 아닌 캐릭터와 함께 일하는 데 필요한 것을 직접 보았습니다. 유니 코드 문자열을 사용하지 않는 경우 문제는 코드가 AZ 이외의 다른 것을 사용하는 세계의 일부에 대한 좌절이된다는 것입니다. 우리 회사는 특정 웹 소프트웨어가 일본 캐릭터를 완전히 엉망으로 만들지 않고 많은 좌절감을 느꼈습니다.

영어 사용자는 유니 코드가 얼마나 훌륭한 지 이해하는 데 약간의 노력이 필요하지만 실제로 모든 문화와 언어에 컴퓨터에 액세스 할 수 있도록하는 것은 정말 훌륭한 노력입니다.

"gotchas":

  1. 출력 웹 페이지에 사용중인 인코딩을 올바르게 표시 한 다음 (컨텐츠 인코딩 헤더 사용) 출력시 유니 코드 문자열을 올바르게 인코딩하십시오. Python 3 Unicode Strings는이 작업을 제대로 수행하는 데 큰 개선입니다.

  2. 유니 코드 문자열로 모든 것을 수행하고 출력을 수행 할 때 마지막 순간에 특정 인코딩으로 만 변환하십시오. PHP와 같은 다른 언어는 EG UTF-8 형식으로 유니 코드를 조작 할 때 버그가 발생하기 쉽습니다. 유니 코드 문자열을 잘라야한다고 가정 해 봅시다. 내부적으로 UTF-8 형태 인 경우, 다중 바이트 캐릭터를 반쯤 깎아서 쓰레기 생산을 초래할 위험이 있습니다. Python의 유니 코드 문자열 사용은 내부적으로 이러한 실수를하기가 더 어려워집니다.

내부적으로 유니 코드를 사용하는 것은 비 ASCII 문자의 문제를 피하는 좋은 방법입니다. 응용 프로그램의 경계에서 변환 (수신 데이터를 유니 코드로, 나가는 데이터로 UTF-8 등)로 변환하십시오. Pylons는 많은 경우에 귀하를 위해 전환 할 수 있습니다. 예를 들어 컨트롤러는 유니 코드 문자열을 안전하게 반환 할 수 있습니다. sqlalchemy 모델은 유니 코드 열을 선언 할 수 있습니다.

소스 코드의 문자열 리터럴과 관련하여 : U 접두사는 일반적으로 필요하지 않습니다. ASCII를 포함하는 STR 객체를 유니 코드 객체와 안전하게 혼합 할 수 있습니다. 모든 문자열 리터럴이 순수한 ASCII인지 또는 "유니 코드"인지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top