whitespace-display-mappings. That's what it's for.
M-x customize-option whitespace-display-mappings RET
The doc gives you details (below), but just look at the Customize buffer and things will be even clearer. You can use
C-u C-x = with the cursor before a given character, to see its Unicode code point.
C-h v whitespace-display-mappings RET
Specify an alist of mappings for displaying characters.
Each element has the following form:
(KIND CHAR VECTOR...)
KIND is the kind of character.
It can be one of the following symbols:
tab-mark for TAB character
space-mark for SPACE or HARD SPACE character
newline-mark for NEWLINE character
CHAR is the character to be mapped.
VECTOR is a vector of characters to be displayed in place of CHAR.
The first display vector that can be displayed is used;
if no display vector for a mapping can be displayed, then
that character is displayed unmodified.
The NEWLINE character is displayed using the face given by
Used when `whitespace-style' includes `tab-mark', `space-mark' or