so maybe not just macOS but rather any case-insensitive file system...
For both I (U+0049) and İ (U+0130) lower case character variant is the same - i (U+0069). This probably trips rclone logic to detect duplicates. Like only case folded variants are compared for case-insensitive file systems.
I have tried to check in the source code what the problem might be but I can't see where it fails.
mkdir d:\files\CaseSensitiveFolder
fsutil file setCaseSensitiveInfo d:\files\CaseSensitiveFolder
Case sensitive attribute on directory d:\files\CaseSensitiveFolder is enabled.
rclone copy d:\files\source d:\files\CaseSensitiveFolder -vv --local-case-sensitive
DEBUG : rclone: Version "v1.66.0" starting with parameters ["c:\\data\\rclone\\rclone" "copy" "d:\\files\\source" "d:\\files\\CaseSensitiveFolder" "-vv" "--local-case-sensitive"]
DEBUG : Creating backend with remote "d:\\files\\source"
DEBUG : Using config file from "c:\\data\\rclone\\rclone.conf"
DEBUG : local: detected overridden config - adding "{dTos-}" suffix to name
DEBUG : fs cache: renaming cache item "d:\\files\\source" to be canonical "local{dTos-}://?/d:/files/source"
DEBUG : Creating backend with remote "d:\\files\\CaseSensitiveFolder"
DEBUG : local: detected overridden config - adding "{dTos-}" suffix to name
DEBUG : fs cache: renaming cache item "d:\\files\\CaseSensitiveFolder" to be canonical "local{dTos-}://?/d:/files/CaseSensitiveFolder"
DEBUG : I: Making directory with metadata
INFO : I: Made directory with metadata (mtime=2024-06-11T09:23:45.4171952-04:00)
DEBUG : Added delayed dir = "I", newDst=I
DEBUG : İ: Making directory with metadata
INFO : İ: Made directory with metadata (mtime=2024-06-11T09:23:52.1877929-04:00)
DEBUG : Added delayed dir = "İ", newDst=İ
DEBUG : İ/I.txt: Need to transfer - File not found at Destination
DEBUG : I/I.txt: Need to transfer - File not found at Destination
DEBUG : I/İ.txt: Need to transfer - File not found at Destination
DEBUG : İ/İ.txt: Need to transfer - File not found at Destination
DEBUG : Local file system at //?/d:/files/CaseSensitiveFolder: Waiting for checks to finish
DEBUG : Local file system at //?/d:/files/CaseSensitiveFolder: Waiting for transfers to finish
DEBUG : İ/İ.txt: md5 = d41d8cd98f00b204e9800998ecf8427e OK
DEBUG : İ/I.txt: md5 = 7215ee9c7d9dc229d2921a40e899ec5f OK
DEBUG : I/İ.txt: md5 = d41d8cd98f00b204e9800998ecf8427e OK
DEBUG : I/I.txt: md5 = 7215ee9c7d9dc229d2921a40e899ec5f OK
DEBUG : İ/I.txt.xirikin2.partial: renamed to: İ/I.txt
INFO : İ/I.txt: Copied (new)
DEBUG : İ/İ.txt.vojarad1.partial: renamed to: İ/İ.txt
INFO : İ/İ.txt: Copied (new)
DEBUG : I/İ.txt.wiciroh6.partial: renamed to: I/İ.txt
INFO : I/İ.txt: Copied (new)
DEBUG : I/I.txt.wuguhoz2.partial: renamed to: I/I.txt
INFO : I/I.txt: Copied (new)
INFO : İ: Set directory modification time (using SetModTime)
INFO : I: Set directory modification time (using SetModTime)
INFO :
Transferred: 2 B / 2 B, 100%, 0 B/s, ETA -
Transferred: 4 / 4, 100%
Elapsed time: 0.0s
rclone tree d:\files\CaseSensitiveFolder
/
├── I
│ ├── I.txt
│ └── İ.txt
└── İ
├── I.txt
└── İ.txt
did another test, this time the dest folder was NOT case sensitive, and rclone was able to copy the files.
mkdir d:\files\not.case.sensitive.folder
fsutil file queryCaseSensitiveInfo d:\files\not.case.sensitive.folder
Case sensitive attribute on directory d:\files\not.case.sensitive.folder is disabled.
rclone copy d:\files\source d:\files\not.case.sensitive.folder -vv --local-case-sensitive
DEBUG : rclone: Version "v1.66.0" starting with parameters ["c:\\data\\rclone\\rclone" "copy" "d:\\files\\source" "d:\\files\\not.case.sensitive.folder" "-vv" "--local-case-sensitive"]
DEBUG : Creating backend with remote "d:\\files\\source"
DEBUG : Using config file from "c:\\data\\rclone\\rclone.conf"
DEBUG : local: detected overridden config - adding "{dTos-}" suffix to name
DEBUG : fs cache: renaming cache item "d:\\files\\source" to be canonical "local{dTos-}://?/d:/files/source"
DEBUG : Creating backend with remote "d:\\files\\not.case.sensitive.folder"
DEBUG : local: detected overridden config - adding "{dTos-}" suffix to name
DEBUG : fs cache: renaming cache item "d:\\files\\not.case.sensitive.folder" to be canonical "local{dTos-}://?/d:/files/not.case.sensitive.folder"
DEBUG : I: Making directory with metadata
INFO : I: Made directory with metadata (mtime=2024-06-11T09:23:45.4171952-04:00)
DEBUG : Added delayed dir = "I", newDst=I
DEBUG : İ: Making directory with metadata
INFO : İ: Made directory with metadata (mtime=2024-06-11T09:23:52.1877929-04:00)
DEBUG : Added delayed dir = "İ", newDst=İ
DEBUG : İ/I.txt: Need to transfer - File not found at Destination
DEBUG : İ/İ.txt: Need to transfer - File not found at Destination
DEBUG : I/I.txt: Need to transfer - File not found at Destination
DEBUG : I/İ.txt: Need to transfer - File not found at Destination
DEBUG : Local file system at //?/d:/files/not.case.sensitive.folder: Waiting for checks to finish
DEBUG : Local file system at //?/d:/files/not.case.sensitive.folder: Waiting for transfers to finish
DEBUG : I/İ.txt: md5 = d41d8cd98f00b204e9800998ecf8427e OK
DEBUG : İ/İ.txt: md5 = d41d8cd98f00b204e9800998ecf8427e OK
DEBUG : I/I.txt: md5 = 7215ee9c7d9dc229d2921a40e899ec5f OK
DEBUG : İ/I.txt: md5 = 7215ee9c7d9dc229d2921a40e899ec5f OK
DEBUG : I/İ.txt.kagehic7.partial: renamed to: I/İ.txt
INFO : I/İ.txt: Copied (new)
DEBUG : I/I.txt.hikomig8.partial: renamed to: I/I.txt
INFO : I/I.txt: Copied (new)
DEBUG : İ/İ.txt.dipewif0.partial: renamed to: İ/İ.txt
INFO : İ/İ.txt: Copied (new)
DEBUG : İ/I.txt.hofegox8.partial: renamed to: İ/I.txt
INFO : İ/I.txt: Copied (new)
INFO : İ: Set directory modification time (using SetModTime)
INFO : I: Set directory modification time (using SetModTime)
INFO :
Transferred: 2 B / 2 B, 100%, 0 B/s, ETA -
Transferred: 4 / 4, 100%
Elapsed time: 0.0s
I guess a fix might be to compare both the upper case and lower case versions of the directory entry and see if they are both equal. There is probably problems with that idea too knowing unicode.
I have a feeling this is a giant can of worms, especially since Wikipedia mentioned doing different things when set to the Turkish locale.