David Richardson
161f6be214
Foundation: Add encoding conversion API to CPString
* CPString+Encoding.j: Introduce Cocoa encoding constants and the CPString (CPStringEncoding) category.
- Implement decoding and encoding via -initWithData:encoding:, -initWithBytes:length:encoding:, -dataUsingEncoding:, and -dataUsingEncoding:allowLossyConversion:.
- Implement -canBeConvertedToEncoding:, -lengthOfBytesUsingEncoding:, -maximumLengthOfBytesUsingEncoding:, -fastestEncoding, and -smallestEncoding.
- Add +availableStringEncodings, terminated by 0 matching Cocoa conventions.
- Add +localizedNameOfStringEncoding:, +defaultCStringEncoding, and encoding detection via +stringEncodingForData:encodingOptions:convertedString:usedLossyConversion:.
- Document remaining NSString compatibility gaps via TODO comments.
* Foundation.j: Import CPString+Encoding.j.
* CPStringEncodingTest.j: Add unit tests covering encodings, lossy conversion, byte lengths, encoding detection, and available encodings.
2026-11-02 14:48:32 -06:00
..
2026-08-04 18:40:57 -06:00
2026-11-02 11:15:27 -06:00
2026-08-18 19:46:22 +02:00
2014-11-06 10:17:05 -08:00
2020-01-31 13:43:58 +01:00
2026-10-06 18:26:49 -06:00
2014-11-06 10:17:05 -08:00
2020-01-31 13:43:58 +01:00
2020-06-30 20:52:34 +02:00
2026-07-21 15:15:53 -06:00
2013-08-12 16:46:14 +02:00
2026-07-21 15:15:53 -06:00
2020-01-31 13:43:58 +01:00
2018-03-04 11:55:34 +01:00
2012-12-16 17:38:47 +01:00
2025-05-14 10:09:01 +02:00
2026-08-28 19:59:11 -06:00
2026-09-11 18:38:11 -06:00
2026-10-22 12:35:00 -06:00
2015-04-22 11:22:44 -07:00
2013-03-05 18:52:06 +00:00
2025-09-25 07:27:17 +02:00
2010-12-26 01:34:37 +02:00
2025-05-14 10:09:01 +02:00
2026-08-27 21:57:37 -06:00
2020-01-31 13:43:58 +01:00
2026-10-20 17:13:38 -06:00
2014-11-06 10:17:05 -08:00
2026-07-21 15:15:53 -06:00
2026-08-05 13:47:28 -06:00
2015-01-13 13:57:22 -08:00
2010-12-26 01:34:37 +02:00
2021-08-19 10:56:13 +02:00
2020-10-02 13:52:42 +02:00
2020-01-31 13:43:58 +01:00
2020-01-31 13:43:58 +01:00
2026-07-08 17:35:33 -06:00
2026-06-16 20:20:25 +02:00
2026-03-24 21:34:39 +01:00
2012-12-16 17:38:47 +01:00
2026-10-31 20:51:13 -06:00
2015-01-13 11:46:53 -08:00
2020-01-31 13:43:58 +01:00
2026-07-21 15:15:53 -06:00
2010-12-26 01:34:37 +02:00
2026-08-04 18:09:27 -06:00
2026-08-18 19:46:22 +02:00
2016-11-12 18:30:02 +01:00
2010-12-16 20:20:58 +02:00
2014-12-16 18:43:08 +01:00
2014-12-16 18:43:08 +01:00
2011-01-23 08:43:46 -08:00
2019-04-08 14:42:23 +02:00
2014-11-06 10:17:05 -08:00
2026-10-20 17:13:38 -06:00
2013-08-12 16:46:14 +02:00
2013-01-18 14:24:37 +01:00
2026-07-08 08:58:53 -06:00
2026-11-02 14:48:32 -06:00
2026-08-18 19:46:22 +02:00
2026-11-02 09:56:11 -06:00
2026-10-23 15:54:19 -06:00
2025-05-14 10:09:01 +02:00
2026-08-18 19:46:22 +02:00
2014-11-06 17:23:27 -05:00
2016-03-28 23:32:48 -07:00
2013-01-11 10:53:42 +00:00
2026-07-21 15:15:53 -06:00
2026-07-21 15:15:53 -06:00
2026-07-21 15:15:53 -06:00
2014-11-06 10:17:05 -08:00
2026-07-08 08:58:53 -06:00
2020-01-31 13:43:58 +01:00
2026-10-20 17:13:38 -06:00
2026-11-02 14:48:32 -06:00
2022-03-17 21:07:16 +01:00
2026-11-02 10:40:08 -06:00