isxdigit() or iswxdigit()

URI::Escape::XSLinux(というか、FreeBSD 以外)では動かないようなので patch 書いて RT に上げたのですが、wctype.h の iswxdigit() か ctype.h の isxdigit() のどちらを使うのが本当に正しいのかよくわかりませんでした。XS.xs の ishexnumber() の使い道からすると、"どっちでもいい" が正解なのかなあ。
FreeBSD の man 3 ishexnumber

DESCRIPTION
     The isxdigit() function tests for any hexadecimal-digit character.
     Regardless of locale, this includes the following characters only:

     ``0''     ``1''     ``2''         ``3''         ``4''
     ``5''     ``6''     ``7''         ``8''         ``9''
     ``A''     ``B''     ``C''         ``D''         ``E''
     ``F''     ``a''     ``b''         ``c''         ``d''
     ``e''     ``f''

     The ishexnumber() function behaves similarly to isxdigit(), but may rec-
     ognize additional characters, depending on the current locale setting.

     For single C chars locales (see multibyte(3)) the value of the argument
     is representable as an unsigned char or the value of EOF.

RETURN VALUES
     The isxdigit() function returns zero if the character tests false and
     returns non-zero if the character tests true.

COMPATIBILITY
     The 4.4BSD extension of accepting arguments outside of the range of the
     unsigned char type in locales with large character sets is considered
     obsolete and may not be supported in future releases.  The iswxdigit()
     function should be used instead.

を読む限りは ishexnumber() の置き換えとしては iswxdigit() がふさわしそうなんだけどなあ。locale によって何がどう変わるのかがわからない。man 3 multibyte も読んだけど難しすぎた...。勉強必要だなあ。