The vCard 4.0 RFC 6350 says that Newlines in property parameter values must be encoded as \n (at least for LABEL parameter of ADR property):
The property can also include a "LABEL" parameter to present a
delivery address label for the address. Its value is a plain-text
string representing the formatted address. Newlines are encoded
as \n, as they are for property values.
ADR;GEO="geo:12.3457,78.910";LABEL="Mr. John Q. Public, Esq.\n
Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\n
U.S.A.":;;123 Main Street;Any Town;CA;91921-1234;U.S.A.
However vCard 4.0 RFC 6350 is updated by 'Parameter Value Encoding in iCalendar and vCard' RFC 6868, which says:
formatted text line breaks are encoded into ^n (U+005E, U+006E)
GEO;X-ADDRESS="Pittsburgh Pirates^n115 Federal St^nPitt
sburgh, PA 15212":geo:40.446816,-80.00566
being used
How do I encode newlines in vCard 4.0 parameter values as \n or as ^n?
Look at the actual grammar:
vCard/iCalendar (unfortunately) does not support generic escaping in property attribute values. As mentioned in RFC 6868:
(which is the whole point of RFC 6868).
LABEL is special and explicitly spec'ed to support \n:
This is just for LABEL.
To answer your question: "How do I encode newlines in vCard 4.0 parameter values as \n or as ^n?"
You first look whether the value of the parameter is spec'ed in a special way, like LABEL. If so, encode it as described for the parameter. If it isn't, encode it via ^.