Summary:

The .net API method FindRecord changes the encoding of the where clause in the SQL statement that's run on the database. If the where clause contains special characters like the German umlaut (Ü) then the method wont find anything.

Record CompanyRecord = FindRecord("Company", "comp_name = 'Test Ü'");
 

Workaround:

Use QuerySelect instead of FindRecord but with this method you need to handle security explicitly.

QuerySelect CompanyQuery = new QuerySelect();
CompanyQuery.SQLCommand = "SELECT * FROM Company WHERE comp_deleted IS NULL AND comp_name = 'Test Ü'";
CompanyQuery.ExecuteReader();

Resolution:

This issue has been resolved in Sage CRM 7.2h.