When loading 8-bit signed rasters with values from -128 to 127 into QGIS or MapServer, negative numbers are not recognized. Is there a way to change the default display settings in QGIS and/or configure the map file for MapServer to recognize the negative values? For MapServer, if classes were setup for the display properties would that work (may just try this out). FYI - These rasters display correctly in ArcGIS Desktop.
I just remembered the last time I used 8-bit signed for anything, and now I feel very old! :)
QGIS doesn't appear to support 8-bit signed (nor does gdal) - see the list of supported types here. The byte type is unsigned, so will be interpreted as such. Not familiar with Mapserver, but I imagine the issue is the same.
I think you might need to write some code (e.g. using gdal) to cast the 8-bit signed byte to int16 (int16 is the smallest signed data type that'll hold your data).
EDIT thinking about it, you might be able to use the raster calculator...
((image@1<128) * image@1) + ((image@1>=128) * (-127+(image@1-128)))
Not tried this though, as I've not seen an sbyte raster before. source is this page. This formula should let you change from the unsigned representation to a signed one.