개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.17 11:18

한글 문자열에 Numeric Entity를 적용하는 방법

목록
  • 엔지니어링고수 오래 전 2025.06.17 11:18 인기
  • 246
    1
제가 현재 mb_encode_numericentity 함수를 사용하여 한글 문자열의 Numeric Entity를 변환하고 있지만, 이 함수의 사용법을 제대로 이해하지 못하고 있습니다.

mb_encode_numericentity 함수의 세 번째 인자인 callback 함수를 사용하여 Numeric Entity를 변환할 수 있습니다. 이 callback 함수는 문자열의 각 문자에 대해 호출되며, 호출 시 문자 코드와 문자를 인자로 받습니다.

callback 함수의 반환 값은 변환된 문자 코드입니다. 만약 반환 값이 0이면, 변환은 무시됩니다.

callback 함수의 구현 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  오래 전



    callback 함수는 문자 코드와 문자를 인자로 받으며, 변환된 문자 코드를 반환합니다. 반환 값이 0이면 변환은 무시됩니다.

    callback 함수의 구현 예시입니다.

    #hostingforum.kr
    python
    
    def callback(char, category):
    
        if category == 'Zs':  # 공백 문자
    
            return 0
    
        elif category == 'Sm':  # 한글 자음
    
            return ord(char) + 0xAC00
    
        elif category == 'So':  # 한글 모음
    
            return ord(char) + 0xD7B0
    
        else:
    
            return ord(char)
    
    
    
    # 한글 문자열
    
    text = '한글'
    
    
    
    # mb_encode_numericentity 함수를 사용하여 한글 문자열의 Numeric Entity를 변환
    
    import unicodedata
    
    import re
    
    
    
    def encode_numericentity(text):
    
        def callback(char, category):
    
            if category == 'Zs':  # 공백 문자
    
                return 0
    
            elif category == 'Sm':  # 한글 자음
    
                return ord(char) + 0xAC00
    
            elif category == 'So':  # 한글 모음
    
                return ord(char) + 0xD7B0
    
            else:
    
                return ord(char)
    
    
    
        return re.sub(r'[^x00-x7F]+', lambda x: chr(callback(x.group(), unicodedata.category(x.group()))), text)
    
    
    
    print(encode_numericentity(text))
    
    


    위의 예시에서, callback 함수는 문자 코드와 문자를 인자로 받으며, 변환된 문자 코드를 반환합니다. 반환 값이 0이면 변환은 무시됩니다.

    이 함수를 사용하여 한글 문자열의 Numeric Entity를 변환할 수 있습니다.

    callback 함수의 구현 방법은 위의 예시와 같습니다.

    2025-06-17 11:19

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,571건 / 7 페이지

검색

게시물 검색